i386.c (ix86_option_override_internal): Switch to SSE math for -ffast-math when target ISA supports SSE2.

* config/i386/i386.c (ix86_option_override_internal): Switch
	to SSE math for -ffast-math when target ISA supports SSE2.

From-SVN: r203291
This commit is contained in:
Jan Hubicka 2013-10-09 01:33:34 +02:00 committed by Jan Hubicka
parent c80217c9fa
commit a81169d8fa
2 changed files with 18 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2013-10-08 Jan Hubicka <jh@suse.cz>
* config/i386/i386.c (ix86_option_override_internal): Switch
to SSE math for -ffast-math when target ISA supports SSE2.
2013-10-08 Andrew MacLeod <amacleod@redhat.com>
* tree-flow.h: Remove some prototypes.

View file

@ -3769,6 +3769,19 @@ ix86_option_override_internal (bool main_args_p)
}
}
}
/* For all chips supporting SSE2, -mfpmath=sse performs better than
fpmath=387. The second is however default at many targets since the
extra 80bit precision of temporaries is considered to be part of ABI.
Overwrite the default at least for -ffast-math.
TODO: -mfpmath=both seems to produce same performing code with bit
smaller binaries. It is however not clear if register allocation is
ready for this setting.
Also -mfpmath=387 is overall a lot more compact (bout 4-5%) than SSE
codegen. We may switch to 387 with -ffast-math for size optimized
functions. */
else if (fast_math_flags_set_p (&global_options)
&& TARGET_SSE2)
ix86_fpmath = FPMATH_SSE;
else
ix86_fpmath = TARGET_FPMATH_DEFAULT;