aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSriraman Tallam <tmsriram@google.com>2010-06-07 05:24:37 +0000
committerSriraman Tallam <tmsriram@gcc.gnu.org>2010-06-07 05:24:37 +0000
commit81c566c2fa32ad31b8b22f7ada161778150e51d1 (patch)
tree01a500e97fffdc727b2363243cb9961d2a5171f9
parentae41b2a2384a75412a7e880db714b7f543166bad (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/config/i386/i386.c13
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;