aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorJoey Ye <joey.ye@intel.com>2008-06-30 17:51:49 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2008-06-30 10:51:49 -0700
commit38aa4d08b72826276844708d538e5e610d65f0b2 (patch)
tree59bec96239e410f2d7ce10e12f5364626f97553d /gcc/reload1.c
parentaad416fbb58e079606dc7b8f1bce83efce2f3117 (diff)
downloadgcc-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.c17
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