* 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
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,
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;
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 ();
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
*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);