You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-funsafe-math-optimizations, which is shorthand for:
-fno-signed-zeros (probably fine?)
-fno-trapping-math (unclear what this would mean for us?)
-fassociative-math (unsure)
-freciprocal-math (unsure)
-ffinite-math-only (we have a couple isnans; not sure if this is safe wrt those?)
-fno-rounding-math (this is actually the default anyway?)
-fno-signaling-nans (this is also the default)
-fcx-limited-range (we don't use complex numbers)
-fexcess-precision=fast (this is the default)
So this leaves -fno-signed-zeros, -fno-trapping-math, -fassociative-math, -freciprocal-math, and -ffinite-math-only up for discussion. One simple test would be to build with and without each flag, and see what code changes and what perf impact they have.
I think if we have cases where -fassociative-math or -freciprocal-math help (and are safe), we should probably be explicitly adjusting our floating-point code to allow the compiler to produce optimal output even without those flags.
This was brought up in #780 (comment).
-ffast-mathis shorthand for several flags:-fno-math-errno(we decided in build: add -fno-math-errno to allow inlining of math functions #780 that we definitely want this)-funsafe-math-optimizations, which is shorthand for:-fno-signed-zeros(probably fine?)-fno-trapping-math(unclear what this would mean for us?)-fassociative-math(unsure)-freciprocal-math(unsure)-ffinite-math-only(we have a coupleisnans; not sure if this is safe wrt those?)-fno-rounding-math(this is actually the default anyway?)-fno-signaling-nans(this is also the default)-fcx-limited-range(we don't use complex numbers)-fexcess-precision=fast(this is the default)So this leaves
-fno-signed-zeros,-fno-trapping-math,-fassociative-math,-freciprocal-math, and-ffinite-math-onlyup for discussion. One simple test would be to build with and without each flag, and see what code changes and what perf impact they have.I think if we have cases where
-fassociative-mathor-freciprocal-mathhelp (and are safe), we should probably be explicitly adjusting our floating-point code to allow the compiler to produce optimal output even without those flags.