diff options
author | Richard Henderson <rth@redhat.com> | 2012-06-09 16:27:52 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2012-06-09 16:27:52 +0000 |
commit | af6c4ab6112af4a0d68dae1720d1cdd94b62c6fd (patch) | |
tree | 55f5584472a05a0e58bdd1b98b62d88b9b689b18 /gcc/combine-stack-adj.c | |
parent | c82a972d7ca03278df581f8711707b92c9afa1b5 (diff) |
PR c++/53602
* cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
(pass_jump): Rename from pass_jump2.
(execute_jump2, pass_jump2): New.
* combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
perform cfg cleanup here. Move the test of PUSH_ROUNDING
and ACCUMULATE_OUTGOING_ARGS test...
(gate_handle_stack_adjustments): ... here.
* passes.c (init_optimization_passes): Update for pass_jump2 rename.
Place new pass_jump2 after pass_stack_adjustments.
* tree-pass.h (pass_jump): Declare.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@188360 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine-stack-adj.c')
-rw-r--r-- | gcc/combine-stack-adj.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c index b46fe3bcb38..65e8f0444a7 100644 --- a/gcc/combine-stack-adj.c +++ b/gcc/combine-stack-adj.c @@ -626,26 +626,23 @@ combine_stack_adjustments_for_block (basic_block bb) static bool gate_handle_stack_adjustments (void) { - return flag_combine_stack_adjustments; -} - -static unsigned int -rest_of_handle_stack_adjustments (void) -{ - cleanup_cfg (flag_crossjumping ? CLEANUP_CROSSJUMP : 0); - /* This is kind of a heuristic. We need to run combine_stack_adjustments even for machines with possibly nonzero TARGET_RETURN_POPS_ARGS and ACCUMULATE_OUTGOING_ARGS. We expect that only ports having push instructions will have popping returns. */ #ifndef PUSH_ROUNDING - if (!ACCUMULATE_OUTGOING_ARGS) + if (ACCUMULATE_OUTGOING_ARGS) + return false; #endif - { - df_note_add_problem (); - df_analyze (); - combine_stack_adjustments (); - } + return flag_combine_stack_adjustments; +} + +static unsigned int +rest_of_handle_stack_adjustments (void) +{ + df_note_add_problem (); + df_analyze (); + combine_stack_adjustments (); return 0; } |