Microoptimise TN-LEXICAL-DEPTH
[sbcl.git] / src / compiler / dfo.lisp
index 763d929..8ee0621 100644 (file)
              (home-kind (functional-kind home))
              (home-externally-visible-p
               (or (eq home-kind :toplevel)
-                  (functional-has-external-references-p home))))
+                  (functional-has-external-references-p home)
+                  (let ((entry (functional-entry-fun home)))
+                    (and entry
+                         (functional-has-external-references-p entry))))))
         (unless (or (and home-externally-visible-p
                          (eq (functional-kind fun) :external))
                     (eq home-kind :deleted))
                    (declare (type entry entry))
                    (let ((entry-home (node-home-lambda entry)))
                      (scavenge-possibly-deleted-lambda entry-home))))
-          (dolist (cc (lambda-calls-or-closes clambda))
+          (do-sset-elements (cc (lambda-calls-or-closes clambda))
             (etypecase cc
               (clambda (scavenge-call cc))
               (lambda-var (scavenge-closure-var cc))