From 3bd544e83479a1358cad1aa315985dc4b4294e46 Mon Sep 17 00:00:00 2001 From: dtc <dtc> Date: Tue, 26 Sep 2000 16:40:11 +0000 Subject: [PATCH] o After propagate-let-args, delete the let when none of the variables are referenced, rather than also checking that none are set. Problems related to lambda-vars without a home may have been resolved now. --- compiler/ir1opt.lisp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/compiler/ir1opt.lisp b/compiler/ir1opt.lisp index 7afa44cce..f0ec6a756 100644 --- a/compiler/ir1opt.lisp +++ b/compiler/ir1opt.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1opt.lisp,v 1.72 2000/08/09 12:56:39 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1opt.lisp,v 1.73 2000/09/26 16:40:11 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -1371,8 +1371,8 @@ ;;; over top-level lambda vars. In such cases, the references may have already ;;; been compiled, and thus can't be retroactively modified. ;;; -;;; If all of the variables are deleted (have no references or sets) when -;;; we are done, then we delete the let. +;;; If all of the variables are deleted (have no references) when we are +;;; done, then we delete the let. ;;; ;;; Note that we are responsible for clearing the Continuation-Reoptimize ;;; flags. @@ -1410,9 +1410,8 @@ (substitute-single-use-continuation arg var))) (t (propagate-to-refs var (continuation-type arg)))))) - - (when (and (every #'null (combination-args call)) - (notany #'lambda-var-sets (lambda-vars fun))) + + (when (every #'null (combination-args call)) (delete-let fun)) (undefined-value)) -- GitLab