diff --git a/compiler/ir1opt.lisp b/compiler/ir1opt.lisp index 41f9daeea64b4bb92699fee24ece596ee32f25a2..f130457fcd69b4404a47f3a301f2a3d921dda75f 100644 --- a/compiler/ir1opt.lisp +++ b/compiler/ir1opt.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1opt.lisp,v 1.54 1992/09/23 13:45:24 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1opt.lisp,v 1.55 1992/09/24 16:41:49 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -634,6 +634,11 @@ ;;; (IF (IF A B C) D E) ==> ;;; (IF A (IF B D E) (IF C D E)) ;;; +;;; We clobber the NODE-SOURCE-PATH of both the original and the new node so +;;; that dead code deletion notes will definitely not consider either node to +;;; be part of the original source. One node might become unreachable, +;;; resulting in a spurious note. +;;; (defun convert-if-if (use node) (declare (type node use) (type cif node)) (with-ir1-environment node @@ -660,6 +665,9 @@ (link-blocks new-block cblock) (link-blocks new-block ablock) + (push "<IF Duplication>" (node-source-path node)) + (push "<IF Duplication>" (node-source-path new-node)) + (reoptimize-continuation test) (reoptimize-continuation new-cont) (setf (component-reanalyze *current-component*) t)))