diff options
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 b46fe3b..65e8f04 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; } |