Making -ffast-math more fine-grained?
Andrew Pinski
pinskia@physics.uc.edu
Wed Mar 24 15:44:00 GMT 2004
I thought we have already have some of these flags already, yes we do:
On Mar 23, 2004, at 21:20, Nathanael Nerode wrote:
> 1 * Ones which allow excess precision computations (these really
> should be OK
> for most people, though not for testsuites)
Done by default on targets which support 80bit math as faster than
64bit would.
I do not think this is going to change any time soon.
> 2 * Ones which ignore correct behavior for anything with NaN or
> infinities
> (and maybe -0.0 vs. +0.0) as intermediate computations, but behave
> properly with real numbers (there's probably a class of users who would
> appreciate this)
-ffinite-math-only Assume no NaNs or infinities are generated
> 3 * Ones which slightly reduce accuracy by doing truncations instead of
> rounding, etc., but where meaningful bounds on the accuracy can be
> computed
> (I'm sure there's a class of users who would appreciate this)
-frounding-math Disable optimizations that assume default
FP
rounding behavior
> 4 * Ones which only work when the exponents involved are close (and
> are only
> useful in cases which should have been coded in fixed-point arithmetic)
> such as (a+b)+c => a+(b+c) mentioned by Robert Dewar recently, which
> are really
> dangerous
-funsafe-math-optimizations Allow math optimizations that may violate
IEEE or
There are some which you missed and are unset by -ffast-math (they are
set by defualt):
-fmath-errno Set errno after built-in math functions
-fsignaling-nans Disable optimizations observable by IEEE
signaling NaNs
-ftrapping-math Assume floating-point operations can trap
/* The following routines are useful in setting all the flags that
-ffast-math and -fno-fast-math imply. */
void
set_fast_math_flags (int set)
{
flag_trapping_math = !set;
flag_unsafe_math_optimizations = set;
flag_finite_math_only = set;
flag_errno_math = !set;
if (set)
{
flag_signaling_nans = 0;
flag_rounding_math = 0;
}
}
Thanks,
Andrew Pinski
More information about the Gcc
mailing list