X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fcopyprop.lisp;h=cd5293da3e649c66004246b0678d415235d5e8f5;hb=98a76d4426660876dec6649b1e228d2e5b47f579;hp=f7062cadf4d39fd22ecba8bf96844b929914e90a;hpb=416152f084604094445a758ff399871132dff2bd;p=sbcl.git diff --git a/src/compiler/copyprop.lisp b/src/compiler/copyprop.lisp index f7062ca..cd5293d 100644 --- a/src/compiler/copyprop.lisp +++ b/src/compiler/copyprop.lisp @@ -55,8 +55,8 @@ ;;; The TN must be a :NORMAL TN. Other TNs might have hidden ;;; references or be otherwise bizarre. ;;; -;;; A TN is also inelegible if it has interned name, policy is such -;;; that we would dump it in the debug vars, and speed is not 3. +;;; A TN is also inelegible if we want to preserve it to facilitate +;;; debugging. ;;; ;;; The SCs of the TN's primitive types is a subset of the SCs of the ;;; copied TN. Moves between TNs of different primitive type SCs may @@ -83,8 +83,10 @@ (primitive-type-scs (tn-primitive-type arg-tn))) (let ((leaf (tn-leaf tn))) + ;; Do we not care about preserving this this + ;; TN for debugging? (or (not leaf) - (not (symbol-package (leaf-name leaf))) + (not (symbol-package (leaf-debug-name leaf))) (policy (vop-node vop) (or (= speed 3) (< debug 2))))) arg-tn))))))) @@ -118,7 +120,7 @@ (sset-adjoin y kill)))))))))) (setf (block-out block) (copy-sset gen)) - (setf (block-kill-sset block) kill) + (setf (block-kill block) kill) (setf (block-gen block) gen)) (values)) @@ -135,7 +137,7 @@ (setf (block-in block) in) (sset-union-of-difference (block-out block) in - (block-kill-sset block)))) + (block-kill block)))) (defevent copy-deleted-move "Copy propagation deleted a move.")