Commit fc56f9d2 by Richard Henderson Committed by Richard Henderson

re PR rtl-optimization/61608 (FAIL: gcc.target/arm/epilog-1.c scan-assembler tests)

PR rtl-opt/61608

        PR target/39284
        * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
        the cfg if there were any changes.
        * passes.def: Revert move of peephole2 after reorder_blocks;
        move duplicate_computed_gotos before peephole2.

From-SVN: r212172
parent a4a51a52
2014-06-30 Richard Henderson <rth@redhat.com>
PR rtl-opt/61608
PR target/39284
* bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
the cfg if there were any changes.
* passes.def: Revert move of peephole2 after reorder_blocks;
move duplicate_computed_gotos before peephole2.
2014-06-30 Uros Bizjak <ubizjak@gmail.com>
* except.c (emit_note_eh_region_end): New helper function.
......
......@@ -2520,13 +2520,20 @@ pass_duplicate_computed_gotos::execute (function *fun)
changed = true;
}
done:
/* Duplicating blocks above will redirect edges and may cause hot blocks
previously reached by both hot and cold blocks to become dominated only
by cold blocks. */
done:
if (changed)
fixup_partitions ();
cfg_layout_finalize ();
{
/* Duplicating blocks above will redirect edges and may cause hot
blocks previously reached by both hot and cold blocks to become
dominated only by cold blocks. */
fixup_partitions ();
/* Merge the duplicated blocks into predecessors, when possible. */
cfg_layout_finalize ();
cleanup_cfg (0);
}
else
cfg_layout_finalize ();
BITMAP_FREE (candidates);
return 0;
......
......@@ -396,20 +396,13 @@ 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_duplicate_computed_gotos);
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment