From e3e47f137c4ea4cfc421ff0625d39b76c5cb7e59 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Sat, 10 Mar 1990 17:00:03 +0000
Subject: [PATCH] Flushed unused BLOCK argument to COMPUTE-SAVE-SET.  Fixed it
 to ignore :ENVIRONMENT TNs.

---
 compiler/life.lisp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/compiler/life.lisp b/compiler/life.lisp
index b1c8ef9d1..0e6ae0c2e 100644
--- a/compiler/life.lisp
+++ b/compiler/life.lisp
@@ -184,7 +184,7 @@
 	  (unless (or (eq tn :more)
 		      (tn-global-conflicts tn)
 		      (zerop (sbit live i)))
-	    (convert-to-global tn)))))))
+	    (convert-to-global tn))))))
   
   (undefined-value))
 
@@ -269,7 +269,7 @@
 	  (setf (tn-local tn)
 		(if conf
 		    (global-conflicts-block conf)
-		    nil)))))))
+		    nil))))))
   
   (undefined-value))
 
@@ -550,13 +550,15 @@
 ;;;
 ;;;    Compute a bit vector of the TNs live after VOP that aren't results.
 ;;;
-(defun compute-save-set (vop block live-bits)
-  (declare (type vop vop) (type ir2-block block)
-	   (type local-tn-bit-vector live-list))
+(defun compute-save-set (vop live-bits)
+  (declare (type vop vop) (type local-tn-bit-vector live-list))
   (let ((live (bit-vector-copy live-bits)))
     (do ((r (vop-results vop) (tn-ref-across r)))
 	((null r))
-      (setf (sbit live (tn-local-number (tn-ref-tn r))) 0))
+      (let ((tn (tn-ref-tn r)))
+	(ecase (tn-kind tn)
+	  (:normal (setf (sbit live (tn-local-number tn)) 0))
+	  (:environment))))
     live))
 
 
@@ -637,7 +639,7 @@
 	
 	(let ((save-p (vop-info-save-p (vop-info vop))))
 	  (when save-p
-	    (let ((ss (compute-save-set vop block live-bits)))
+	    (let ((ss (compute-save-set vop live-bits)))
 	      (setf (vop-save-set vop) ss)
 	      (when (eq save-p :force-to-stack)
 		(do-live-tns (tn ss block)
-- 
GitLab