aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-04-27 00:39:51 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-04-27 00:39:51 -0700
commit83a67d12b2fbf92b45e8a4e2c6b77e3c817eeba5 (patch)
treed157958e0644d25a428b431b2445c8aaaff7b7bc
parenta9f531a60b31344b51f07c6b9685865b20309533 (diff)
downloadgcc-83a67d12b2fbf92b45e8a4e2c6b77e3c817eeba5.zip
gcc-83a67d12b2fbf92b45e8a4e2c6b77e3c817eeba5.tar.gz
gcc-83a67d12b2fbf92b45e8a4e2c6b77e3c817eeba5.tar.bz2
flow.c (calculate_global_regs_live): Force stack pointer live at end.
* flow.c (calculate_global_regs_live): Force stack pointer live at end. From-SVN: r33476
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/flow.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4354846..055cfbf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -3,6 +3,9 @@
* flow.c (allocate_reg_life_data): Set max_regno here ...
(life_analysis): ... not here.
+ * flow.c (calculate_global_regs_live): Force stack pointer
+ live at end.
+
2000-04-26 Richard Henderson <rth@cygnus.com>
* jump.c (redirect_exp_1): Rework from old redirect_exp. Never
diff --git a/gcc/flow.c b/gcc/flow.c
index 5a729c7..72a8372 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3050,6 +3050,10 @@ calculate_global_regs_live (blocks_in, blocks_out, flags)
IOR_REG_SET (new_live_at_end, sb->global_live_at_start);
}
+ /* Force the stack pointer to be live -- which might not already be
+ the case for blocks within infinite loops. */
+ SET_REGNO_REG_SET (new_live_at_end, STACK_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