aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
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 /gcc/config
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
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.c13
1 files changed, 9 insertions, 4 deletions
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;