From f846e0de9b4d71d063dd1e40e15e1493f449e22a Mon Sep 17 00:00:00 2001
From: Richard Henderson <rth@redhat.com>
Date: Thu, 7 Dec 2000 11:29:24 -0800
Subject: [PATCH] flow.c (calculate_global_regs_live): Force the stack pointer
 live after reload as well.

        * flow.c (calculate_global_regs_live): Force the stack pointer live
        after reload as well.

From-SVN: r38114
---
 gcc/ChangeLog | 5 +++++
 gcc/flow.c    | 6 +++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0587e1a06e3b..a82ff39004b5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-12-07  Richard Henderson  <rth@redhat.com>
+
+	* flow.c (calculate_global_regs_live): Force the stack pointer live
+	after reload as well.
+
 2000-12-07  Bruce Korb  <bkorb@gnu.org>
 
 	* fixinc/Makefile.*(exeext): the variables are exeext, the
diff --git a/gcc/flow.c b/gcc/flow.c
index 1e51d20038bf..92b500290793 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3368,14 +3368,14 @@ calculate_global_regs_live (blocks_in, blocks_out, flags)
 	  IOR_REG_SET (new_live_at_end, sb->global_live_at_start);
 	}
 
+      /* The all-important stack pointer must always be live.  */
+      SET_REGNO_REG_SET (new_live_at_end, STACK_POINTER_REGNUM);
+
       /* Before reload, there are a few registers that must be forced
 	 live everywhere -- which might not already be the case for 
 	 blocks within infinite loops.  */
       if (! reload_completed)
 	{
-	  /* The all-important stack pointer.  */
-	  SET_REGNO_REG_SET (new_live_at_end, STACK_POINTER_REGNUM);
-
 	  /* Any reference to any pseudo before reload is a potential
 	     reference of the frame pointer.  */
 	  SET_REGNO_REG_SET (new_live_at_end, FRAME_POINTER_REGNUM);
-- 
GitLab