diff options
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 7dc593f68ad..13b8e6f7ef0 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -742,11 +742,11 @@ reload (rtx first, int global) /* A function that has a nonlocal label that can reach the exit block via non-exceptional paths must save all call-saved registers. */ - if (current_function_has_nonlocal_label + if (cfun->has_nonlocal_label && has_nonexceptional_receiver ()) - current_function_saves_all_registers = 1; + crtl->saves_all_registers = 1; - if (current_function_saves_all_registers) + if (crtl->saves_all_registers) for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) if (! call_used_regs[i] && ! fixed_regs[i] && ! LOCAL_REGNO (i)) df_set_regs_ever_live (i, true); @@ -3721,9 +3721,9 @@ init_elim_table (void) the frame pointer in that case. At some point, we should improve this by emitting the sp-adjusting insns for this case. */ - || (current_function_calls_alloca + || (cfun->calls_alloca && EXIT_IGNORE_STACK) - || current_function_accesses_prior_frames + || crtl->accesses_prior_frames || FRAME_POINTER_REQUIRED); num_eliminable = 0; |