OSDN Git Service

* gcse.c (gcse_main): Do jump bypassing in CPROP2.
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 May 2007 18:15:38 +0000 (18:15 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 May 2007 18:15:38 +0000 (18:15 +0000)
* passes.c (init_optimization_passes): Move pass_jump_bypass
after loop2.

* basic-block.h (bb_has_eh_pred): Fix style issue.

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

gcc/ChangeLog
gcc/basic-block.h
gcc/gcse.c
gcc/passes.c

index 32fa239..8fa8e7c 100644 (file)
@@ -1,5 +1,13 @@
 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
 
+       * gcse.c (gcse_main): Do jump bypassing in CPROP2.
+       * passes.c (init_optimization_passes): Move pass_jump_bypass
+       after loop2.
+
+       * basic-block.h (bb_has_eh_pred): Fix style issue.
+
+2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
+
        PR rtl-optimization/31848
        * loop-invariant.c (move_invariant_reg): If we move an insn
        with a REG_EQUAL note, and that insn is not always executed,
index 6286a5d..3116a52 100644 (file)
@@ -1159,7 +1159,8 @@ extern bool rtx_equiv_p (rtx *, rtx, int, struct equiv_info *);
 extern bool condjump_equiv_p (struct equiv_info *, bool);
 
 /* Return true when one of the predecessor edges of BB is marked with EDGE_EH.  */
-static inline bool bb_has_eh_pred (basic_block bb)
+static inline bool
+bb_has_eh_pred (basic_block bb)
 {
   edge e;
   edge_iterator ei;
index 70c89ef..b18d17a 100644 (file)
@@ -789,7 +789,7 @@ gcse_main (rtx f ATTRIBUTE_UNUSED)
   alloc_gcse_mem ();
   /* This time, go ahead and allow cprop to alter jumps.  */
   timevar_push (TV_CPROP2);
-  one_cprop_pass (pass + 1, true, false);
+  one_cprop_pass (pass + 1, true, true);
   timevar_pop (TV_CPROP2);
   free_gcse_mem ();
 
index 9650e89..bea89b6 100644 (file)
@@ -664,7 +664,6 @@ init_optimization_passes (void)
       NEXT_PASS (pass_cse);
       NEXT_PASS (pass_rtl_fwprop);
       NEXT_PASS (pass_gcse);
-      NEXT_PASS (pass_jump_bypass);
       NEXT_PASS (pass_rtl_ifcvt);
       NEXT_PASS (pass_tracer);
       /* Perform loop optimizations.  It might be better to do them a bit
@@ -682,6 +681,7 @@ init_optimization_passes (void)
          *p = NULL;
        }
       NEXT_PASS (pass_web);
+      NEXT_PASS (pass_jump_bypass);
       NEXT_PASS (pass_cse2);
       NEXT_PASS (pass_rtl_fwprop_addr);
       NEXT_PASS (pass_outof_cfg_layout_mode);