summaryrefslogtreecommitdiff
path: root/gcc/passes.def
diff options
context:
space:
mode:
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>2014-06-23 21:52:31 +0000
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>2014-06-23 21:52:31 +0000
commit5a72e1db611aed18c024561c1e6f0bd85585d8ee (patch)
tree27a570c7008aafb5336eab029fece919f57bb6eb /gcc/passes.def
parentee2e8258def8a8cc56f3a3ba2257460e5b1e52ae (diff)
downloadgcc-5a72e1db611aed18c024561c1e6f0bd85585d8ee.tar.gz
PR target/39284
* passes.def (peephole2): Move peephole2 pass before before sched2 pass. * config/i386/i386.md (peehole2): Combine memories and indirect jumps. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211919 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.def')
-rw-r--r--gcc/passes.def9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/passes.def b/gcc/passes.def
index c574b4ecff4..729be9cc90a 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -394,13 +394,20 @@ along with GCC; see the file COPYING3. If not see
NEXT_PASS (pass_rtl_dse2);
NEXT_PASS (pass_stack_adjustments);
NEXT_PASS (pass_jump2);
- NEXT_PASS (pass_peephole2);
NEXT_PASS (pass_if_after_reload);
NEXT_PASS (pass_regrename);
NEXT_PASS (pass_cprop_hardreg);
NEXT_PASS (pass_fast_rtl_dce);
NEXT_PASS (pass_duplicate_computed_gotos);
NEXT_PASS (pass_reorder_blocks);
+ /* We need to run peephole2 pass after the duplicate-
+ compute-gotos and the reorder-blocks pass (PR/39284).
+ We have a single indirect branch in the entire function
+ before duplicate-compute-gotos pass. This vastly reduces
+ the size of the CFG.
+ For preventing to run peephole2 pass twice, its run after
+ the jump2 got removed. */
+ NEXT_PASS (pass_peephole2);
NEXT_PASS (pass_branch_target_load_optimize2);
NEXT_PASS (pass_leaf_regs);
NEXT_PASS (pass_split_before_sched2);