OSDN Git Service

* implicit-zee.c: New file.
authortmsriram <tmsriram@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 May 2010 21:15:19 +0000 (21:15 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:07:02 +0000 (14:07 +0900)
* tree-pass.h (pass_implicit_zee): Declare.
* passes.c (init_optimization_passes): Add zee pass.
* common.opt (fzee): New flag.
* timevar.def (TV_ZEE): Define.
* config/i386/i386.c (optimization_options): Turn on ZEE for level 2
and beyond.
* Makefile.in (implicit-zee.o): Add new build file.
* gcc.target/i386/zee.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159342 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/Makefile.in
gcc/config/i386/i386.c
gcc/implicit-zee.c
gcc/passes.c
gcc/testsuite/ChangeLog
gcc/tree-pass.h

index bb1e3a5..2e9daf4 100644 (file)
@@ -1,3 +1,14 @@
+2010-05-12  Sriraman Tallam  <tmsriram@google.com>
+
+       * implicit-zee.c: New file.
+       * tree-pass.h (pass_implicit_zee): Declare.
+       * passes.c (init_optimization_passes): Add zee pass.
+       * common.opt (fzee): New flag.
+       * timevar.def (TV_ZEE): Define.
+       * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
+       and beyond.
+       * Makefile.in (implicit-zee.o): Add new build file.
+
 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
            Nathan Froyd  <froydnj@codesourcery.com>
 
index 1e6749a..9fef0ce 100644 (file)
@@ -1229,6 +1229,7 @@ OBJS-common = \
        haifa-sched.o \
        hooks.o \
        ifcvt.o \
+       implicit-zee.o \
        init-regs.o \
        integrate.o \
        intl.o \
@@ -2977,6 +2978,11 @@ fwprop.o : fwprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
 web.o : web.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
    hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \
    insn-config.h $(RECOG_H) $(DF_H) $(OBSTACK_H) $(TIMEVAR_H) $(TREE_PASS_H)
+implicit-zee.o : implicit-zee.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
+   hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h \
+   $(DF_H) $(TIMEVAR_H) tree-pass.h $(RECOG_H) $(EXPR_H) \
+   $(REGS_H) $(TREE_H) $(TM_P_H) insn-config.h $(INSN_ATTR_H) $(REAL_H) $(TOPLEV_H) \
+   $(TARGET_H) $(OPTABS_H) insn-codes.h rtlhooks-def.h $(PARAMS_H) $(CGRAPH_H)
 gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
    $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(GGC_H) \
    $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \
index e05d3cc..ee5e931 100644 (file)
@@ -4289,6 +4289,10 @@ 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.  */
index 3344d7f..12cdfd9 100644 (file)
@@ -193,6 +193,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "expr.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "real.h"
 #include "toplev.h"
 #include "target.h"
 #include "timevar.h"
index c087750..041837f 100644 (file)
@@ -1031,6 +1031,7 @@ init_optimization_passes (void)
          NEXT_PASS (pass_postreload_cse);
          NEXT_PASS (pass_gcse2);
          NEXT_PASS (pass_split_after_reload);
+         NEXT_PASS (pass_implicit_zee);
          NEXT_PASS (pass_branch_target_load_optimize1);
          NEXT_PASS (pass_thread_prologue_and_epilogue);
          NEXT_PASS (pass_rtl_dse2);
index a3200c9..db8a78d 100644 (file)
@@ -1,3 +1,7 @@
+2010-05-12  Sriraman Tallam  <tmsriram@google.com>
+
+       * gcc.target/i386/zee.c: New file.
+
 2010-05-12  Jason Merrill  <jason@redhat.com>
 
        * g++.dg/conversion/op1.C: Expect template candidate message.
index 8542aab..5ed86b4 100644 (file)
@@ -515,6 +515,7 @@ extern struct rtl_opt_pass pass_stack_ptr_mod;
 extern struct rtl_opt_pass pass_initialize_regs;
 extern struct rtl_opt_pass pass_combine;
 extern struct rtl_opt_pass pass_if_after_combine;
+extern struct rtl_opt_pass pass_implicit_zee;
 extern struct rtl_opt_pass pass_partition_blocks;
 extern struct rtl_opt_pass pass_match_asm_constraints;
 extern struct rtl_opt_pass pass_regmove;