diff options
author | Joey Ye <joey.ye@intel.com> | 2008-06-30 17:51:49 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2008-06-30 10:51:49 -0700 |
commit | 38aa4d08b72826276844708d538e5e610d65f0b2 (patch) | |
tree | 59bec96239e410f2d7ce10e12f5364626f97553d /gcc/reload1.c | |
parent | aad416fbb58e079606dc7b8f1bce83efce2f3117 (diff) | |
download | gcc-38aa4d08b72826276844708d538e5e610d65f0b2.zip gcc-38aa4d08b72826276844708d538e5e610d65f0b2.tar.gz gcc-38aa4d08b72826276844708d538e5e610d65f0b2.tar.bz2 |
global.c (compute_regsets): Set frame_pointer_needed here.
2008-06-30 Joey Ye <joey.ye@intel.com>
H.J. Lu <hongjiu.lu@intel.com>
* global.c (compute_regsets): Set frame_pointer_needed here.
* reload1.c (init_elim_table): Don't set frame_pointer_needed
here.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r137275
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index b1e9088..297acbf 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3695,7 +3695,9 @@ elimination_target_reg_p (rtx x) return false; } -/* Initialize the table of registers to eliminate. */ +/* Initialize the table of registers to eliminate. + Pre-condition: global flag frame_pointer_needed has been set before + calling this function. */ static void init_elim_table (void) @@ -3708,19 +3710,6 @@ init_elim_table (void) if (!reg_eliminate) reg_eliminate = XCNEWVEC (struct elim_table, NUM_ELIMINABLE_REGS); - /* Does this function require a frame pointer? */ - - frame_pointer_needed = (! flag_omit_frame_pointer - /* ?? If EXIT_IGNORE_STACK is set, we will not save - and restore sp for alloca. So we can't eliminate - the frame pointer in that case. At some point, - we should improve this by emitting the - sp-adjusting insns for this case. */ - || (cfun->calls_alloca - && EXIT_IGNORE_STACK) - || crtl->accesses_prior_frames - || FRAME_POINTER_REQUIRED); - num_eliminable = 0; #ifdef ELIMINABLE_REGS |