From 770a7febdae7861ad605ad8f5e5c004a9c5c5105 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 21 Aug 2000 17:44:09 -0700 Subject: [PATCH] flow.c (calculate_global_regs_live): Mark frame pointer live everywhere before reload. * flow.c (calculate_global_regs_live): Mark frame pointer live everywhere before reload. From-SVN: r35862 --- gcc/ChangeLog | 5 +++++ gcc/flow.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 384fb53063d..e25d72f3b5c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-08-21 Richard Henderson + + * flow.c (calculate_global_regs_live): Mark frame pointer live + everywhere before reload. + 2000-08-21 Jim Wilson * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle diff --git a/gcc/flow.c b/gcc/flow.c index e37512acc42..ad3403974a6 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -3191,6 +3191,12 @@ calculate_global_regs_live (blocks_in, blocks_out, flags) the case for blocks within infinite loops. */ SET_REGNO_REG_SET (new_live_at_end, STACK_POINTER_REGNUM); + /* Similarly for the frame pointer before reload. Any reference + to any pseudo before reload is a potential reference of the + frame pointer. */ + if (! reload_completed) + SET_REGNO_REG_SET (new_live_at_end, FRAME_POINTER_REGNUM); + /* Regs used in phi nodes are not included in global_live_at_start, since they are live only along a particular edge. Set those regs that are live because of a