X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir1util.lisp;h=0efb8ae5ded073ef524d345de7f79ce9a05cc66a;hb=731d5dd65a7b94b5d49d1663d9b60c3a406ce38c;hp=b62fb36b20659786f3c3aa9dc36911d114a9145e;hpb=883b33b092472473b0dd559d64351b9436916af3;p=sbcl.git diff --git a/src/compiler/ir1util.lisp b/src/compiler/ir1util.lisp index b62fb36..0efb8ae 100644 --- a/src/compiler/ir1util.lisp +++ b/src/compiler/ir1util.lisp @@ -63,10 +63,13 @@ (list uses)))) (defun principal-lvar-use (lvar) - (let ((use (lvar-uses lvar))) - (if (cast-p use) - (principal-lvar-use (cast-value use)) - use))) + (labels ((plu (lvar) + (declare (type lvar lvar)) + (let ((use (lvar-uses lvar))) + (if (cast-p use) + (plu (cast-value use)) + use)))) + (plu lvar))) ;;; Update lvar use information so that NODE is no longer a use of its ;;; LVAR.