diff options
author | Sriraman Tallam <tmsriram@google.com> | 2010-06-07 05:24:37 +0000 |
---|---|---|
committer | Sriraman Tallam <tmsriram@gcc.gnu.org> | 2010-06-07 05:24:37 +0000 |
commit | 81c566c2fa32ad31b8b22f7ada161778150e51d1 (patch) | |
tree | 01a500e97fffdc727b2363243cb9961d2a5171f9 | |
parent | ae41b2a2384a75412a7e880db714b7f543166bad (diff) | |
download | gcc-81c566c2fa32ad31b8b22f7ada161778150e51d1.zip gcc-81c566c2fa32ad31b8b22f7ada161778150e51d1.tar.gz gcc-81c566c2fa32ad31b8b22f7ada161778150e51d1.tar.bz2 |
re PR target/44319 (-fzee is mishandled)
2010-06-06 Sriraman Tallam <tmsriram@google.com>
PR target/44319
* config/i386/i386.c (override_options): Turn zee pass on for level 2
and above and defer till target is known.
(optimization_options): Turn on zee pass if TARGET_64BIT is set and
turn off otherwise.
From-SVN: r160357
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 13 |
2 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4403b72..e8b6179 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2010-06-06 Sriraman Tallam <tmsriram@google.com> + + PR target/44319 + * config/i386/i386.c (override_options): Turn zee pass on for level 2 + and above and defer till target is known. + (optimization_options): Turn on zee pass if TARGET_64BIT is set and + turn off otherwise. + 2010-05-25 Jan Hubicka <jh@suse.cz> * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2a46f89..8ae0c24 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -2891,6 +2891,8 @@ override_options (bool main_args_p) in case they weren't overwritten by command line options. */ if (TARGET_64BIT) { + if (flag_zee == 2) + flag_zee = 1; /* Mach-O doesn't support omitting the frame pointer for now. */ if (flag_omit_frame_pointer == 2) flag_omit_frame_pointer = (TARGET_MACHO ? 0 : 1); @@ -2901,6 +2903,8 @@ override_options (bool main_args_p) } else { + if (flag_zee == 2) + flag_zee = 0; if (flag_omit_frame_pointer == 2) flag_omit_frame_pointer = 0; if (flag_asynchronous_unwind_tables == 2) @@ -4390,10 +4394,6 @@ optimization_options (int level, int size ATTRIBUTE_UNUSED) flag_schedule_insns = 0; #endif - /* For -O2 and beyond, turn on -fzee for x86_64 target. */ - if (level > 1 && TARGET_64BIT) - flag_zee = 1; - if (TARGET_MACHO) /* The Darwin libraries never set errno, so we might as well avoid calling them when that's the only reason we would. */ @@ -4405,6 +4405,11 @@ optimization_options (int level, int size ATTRIBUTE_UNUSED) specifying them, we will set the defaults in override_options. */ if (optimize >= 1) flag_omit_frame_pointer = 2; + + /* For -O2 and beyond, turn on -fzee for x86_64 target. */ + if (level > 1) + flag_zee = 2; + flag_pcc_struct_return = 2; flag_asynchronous_unwind_tables = 2; flag_vect_cost_model = 1; |