I think I agree, but is there a chance that we can also get
#pragma FENV_ACCESS support?

Martin

Am Mittwoch, dem 01.07.2026 um 16:02 -0700 schrieb Andrea Pinski via Gcc:
> So GCC has always defaulted to -ftrapping-math but that has always
> come with many issues. Especially if we go by Joseph's definition of
> the flag (from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53805#c4
> and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54192):
> ```
> As per my previous comment, -ftrapping-math currently affects (or
> 
> might affect if fully implemented) several different things:
> 
> * Disallowing code transformations that cause some code to raise more
> exception flags than it would have before.
> 
> * Disallowing code transformations that cause some code to raise fewer
> exception flags than it would have before.
> 
> * Ensuring the code generated allows for possible non-local control flow
> from exception traps raised by floating-point operations (this is the part
> where -fnon-call-exceptions might be relevant).
> 
> * Disallowing code transformations that might affect whether an exact
> underflow exception occurs in some code (not observable through exception
> flags, is observable through trap handlers).
> 
> * Ensuring floating-point operations that might raise exception flags are
> not removed, or moved past code (asms or function calls) that might read
> or modify the exception flag state (not implemented, modulo Marc Glisse's
> -ffenv-access patches from August 2020)
> ```
> 
> The second point is something which GCC tries to do in some cases but
> in many others GCC removes the statements that would/could raise
> exception flags. This is especially true when the statement would be
> DCEd as unused. It also has been in this situation since at least
> 3.4.0 (maybe longer).
> 
> So my proposal is turn off trapping-math by default for the C and C++
> front-end and also file a bug report for all of the cases where
> -ftrapping-math is removing the statements that it should not be
> removed.
> 
> Note clang/LLVM defaults to -fno-trapping-math and so comparisons
> between GCC and LLVM sometimes will not be totally fair. And yes we
> are getting more and more cases where the exception flags matter; e.g.
> vectorizer. So there huge difference starting to show up in
> performance between -fno-trapping-math and -ftrapping-math now too.
> 
> Thanks,
> Andrea

Reply via email to