[PATCH, i386]: Enable flag_ree also on 32bit targets
Uros Bizjak
ubizjak@gmail.com
Wed Dec 21 20:16:00 GMT 2011
Hello!
As shown by pr50038.c testcase, recent redundant extension insns
improvements also benefit 32bit targets. Attached patch enables this
pass for all x86 targets. The patch also moves the testcase to better
place.
2011-12-21 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_option_override_internal): Enable flag_ree
also for 32bit targets.
testsuite/ChangeLog:
2011-12-21 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/pr50038.c: Move to ...
* gcc.target/i386/pr50038.c: ... here. Test on all targets.
Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline SVN.
Uros.
-------------- next part --------------
Index: i386.c
===================================================================
--- i386.c (revision 182601)
+++ i386.c (working copy)
@@ -3445,12 +3445,14 @@ ix86_option_override_internal (bool main_args_p)
#define USE_X86_64_FRAME_POINTER 0
#endif
+ /* Enable redundant extension instructions removal at -O2 and higher. */
+ if (optimize >= 2 && !global_options_set.x_flag_ree)
+ flag_ree = 1;
+
/* Set the default values for switches whose default depends on TARGET_64BIT
in case they weren't overwritten by command line options. */
if (TARGET_64BIT)
{
- if (optimize > 1 && !global_options_set.x_flag_ree)
- flag_ree = 1;
if (optimize >= 1 && !global_options_set.x_flag_omit_frame_pointer)
flag_omit_frame_pointer = !USE_X86_64_FRAME_POINTER;
if (flag_asynchronous_unwind_tables == 2)
More information about the Gcc-patches
mailing list