From 81c566c2fa32ad31b8b22f7ada161778150e51d1 Mon Sep 17 00:00:00 2001 From: Sriraman Tallam Date: Mon, 7 Jun 2010 05:24:37 +0000 Subject: [PATCH] re PR target/44319 (-fzee is mishandled) 2010-06-06 Sriraman Tallam 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 --- gcc/ChangeLog | 8 ++++++++ gcc/config/i386/i386.c | 13 +++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4403b7245ee..e8b61792657 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2010-06-06 Sriraman Tallam + + 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 * 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 2a46f89cb24..8ae0c24a5b5 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; -- 2.30.2