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