On 14/07/2021 09:49, Matthias Kretz wrote:
> On Wednesday, 14 July 2021 09:39:42 CEST Richard Biener wrote:
>> -ffast-math decomposes to quite some flag_* and those generally are not
>> reflected into the IL but can be different per function (and then
>> prevent inlining).
> 
> Is there any chance the "and then prevent inlining" can be eliminated? 
> Because 
> then I could write my own fast<float> class in C++, marking all operators 
> with 
> __attribute__((optimize("-Ofast")))...
> 

You can add your voice to
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101279>.

I think there is a lot of scope for improved code in general if function
attributes did not disable inlining in so many cases.  And it would open
the possibility of C++ template classes to let programmers mix and match
"fast" floating point vs. strict IEEE, or different overflow behaviour,
or different trapping behaviour - without the overhead of function calls
ruining the whole idea.

But it is a tough challenge for the gcc developers, and would (as far as
my limited understanding goes) involve a lot of changes the to the way
the compiler works.  I expect it is something that would need to be done
as a project rather than just a few patches.

Reply via email to