diff options
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r-- | gcc/reg-stack.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 4ed72047ab7..bb2e1a1f9c6 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -187,6 +187,8 @@ static VEC(char,heap) *stack_regs_mentioned_data; #define REG_STACK_SIZE (LAST_STACK_REG - FIRST_STACK_REG + 1) +int regstack_completed = 0; + /* This is the basic stack record. TOP is an index into REG[] such that REG[TOP] is the top of stack. If TOP is -1 the stack is empty. @@ -3151,6 +3153,7 @@ rest_of_handle_stack_regs (void) #ifdef STACK_REGS if (reg_to_stack () && optimize) { + regstack_completed = 1; if (cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_POST_REGSTACK | (flag_crossjumping ? CLEANUP_CROSSJUMP : 0)) && (flag_reorder_blocks || flag_reorder_blocks_and_partition)) @@ -3159,6 +3162,8 @@ rest_of_handle_stack_regs (void) cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_POST_REGSTACK); } } + else + regstack_completed = 1; #endif return 0; } |