From 313d29cbc5273095d03cba3a72d5346e135ffa96 Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Wed, 2 Jan 1991 19:12:06 +0000 Subject: [PATCH] Changed stuff to use NODE-HOME-LAMBDA, since now that lets can be deleted, it is not totally simple to find the home lambda. Moved unreferenced variable noting into NOTE-UNREFERENCED-VARS, since this code is now shared with function deleting code in ir1util. --- compiler/envanal.lisp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/compiler/envanal.lisp b/compiler/envanal.lisp index 519fb1044..8d71fef18 100644 --- a/compiler/envanal.lisp +++ b/compiler/envanal.lisp @@ -104,7 +104,7 @@ ;;; (defun get-node-environment (node) (declare (type node node)) - (get-lambda-environment (lexenv-lambda (node-lexenv node)))) + (get-lambda-environment (node-home-lambda node))) ;;; Compute-Closure -- Internal @@ -118,21 +118,14 @@ (defun compute-closure (fun) (declare (type clambda fun)) (let ((env (get-lambda-environment fun))) + (note-unreferenced-vars fun) (dolist (var (lambda-vars fun)) - (unless (or (leaf-ever-used var) - (lambda-var-ignorep var)) - (let ((*compiler-error-context* (lambda-bind fun))) - (compiler-warning "Variable ~S defined but never used." - (leaf-name var)) - (setf (leaf-ever-used var) t))) - (dolist (ref (leaf-refs var)) (let ((ref-env (get-node-environment ref))) (unless (eq ref-env env) (when (lambda-var-sets var) (setf (lambda-var-indirect var) t)) (close-over var ref-env env)))) - (dolist (set (basic-var-sets var)) (let ((set-env (get-node-environment set))) (unless (eq set-env env) -- GitLab