search for: gimple_call_flag

Displaying 4 results from an estimated 4 matches for "gimple_call_flag".

Did you mean: gimple_call_flags
2017 Jan 03
3
RFC: Allow readnone and readonly functions to throw exceptions
...ut. GCC isn't as consistent as one may think here. /* Non-looping const functions always return normally. Otherwise the call might not return or have side-effects that forbids hoisting possibly trapping expressions before it. */ int flags = gimple_call_flags (stmt); if (!(flags & ECF_CONST) || (flags & ECF_LOOPING_CONST_OR_PURE)) BB_MAY_NOTRETURN (block) = 1; } It also, for example, will do this: double cos (double) __attribute__ ((const)); double sin (double) __attribute__ ((const)); double f(double...
2017 Jan 05
2
RFC: Allow readnone and readonly functions to throw exceptions
...t;> >> /* Non-looping const functions always return normally. >> Otherwise the call might not return or have side-effects >> that forbids hoisting possibly trapping expressions >> before it. */ >> int flags = gimple_call_flags (stmt); >> if (!(flags & ECF_CONST) >> || (flags & ECF_LOOPING_CONST_OR_PURE)) >> BB_MAY_NOTRETURN (block) = 1; >> } >> >> It also, for example, will do this: >> double cos (double) __attribute__ ((cons...
2017 Jan 03
2
RFC: Allow readnone and readonly functions to throw exceptions
Hi Michael, On Mon, Jan 2, 2017 at 11:49 PM, Michael Kuperstein <michael.kuperstein at gmail.com> wrote: > This sounds right to me. > > IIUC, historically, readonly and readnone are meant to model the "pure" and > "const" GCC attributes. These attributes make pretty strong guarantees: > > "[a pure] function can be subject to common subexpression
2017 Jan 05
3
RFC: Allow readnone and readonly functions to throw exceptions
...ooping const functions always return normally. >>>> Otherwise the call might not return or have side-effects >>>> that forbids hoisting possibly trapping expressions >>>> before it. */ >>>> int flags = gimple_call_flags (stmt); >>>> if (!(flags & ECF_CONST) >>>> || (flags & ECF_LOOPING_CONST_OR_PURE)) >>>> BB_MAY_NOTRETURN (block) = 1; >>>> } >>>> >>>> It also, for example, will do this:...