X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fcontrol.lisp;h=2e1db870749b936af3eb91ba15f7d9e9244f9430;hb=ad5cd2538240a4283cb4498b21ff7ab23adcde92;hp=9259a02a5a651afcf0d63b593739fe305fe3fb33;hpb=b05f52060838600d14b5d8ad4604a61351dd7017;p=sbcl.git diff --git a/src/compiler/control.lisp b/src/compiler/control.lisp index 9259a02..2e1db87 100644 --- a/src/compiler/control.lisp +++ b/src/compiler/control.lisp @@ -96,7 +96,9 @@ ;;; (end in an error, NLX or tail full call.) This is to discourage ;;; making error code the drop-through. (defun control-analyze-block (block tail block-info-constructor) - (declare (type cblock block) (type block-annotation tail)) + (declare (type cblock block) + (type block-annotation tail) + (type function block-info-constructor)) (unless (block-flag block) (let ((block (find-rotated-loop-head block))) (setf (block-flag block) t) @@ -137,7 +139,9 @@ ;;; course, it will never get a drop-through if either function has ;;; NLX code. (defun control-analyze-1-fun (fun component block-info-constructor) - (declare (type clambda fun) (type component component)) + (declare (type clambda fun) + (type component component) + (type function block-info-constructor)) (let* ((tail-block (block-info (component-tail component))) (prev-block (block-annotation-prev tail-block)) (bind-block (node-block (lambda-bind fun)))) @@ -163,7 +167,7 @@ block-info-constructor))))))) (values)) -;;; Do control analysis on Component, finding the emit order. Our only +;;; Do control analysis on COMPONENT, finding the emit order. Our only ;;; cleverness here is that we walk XEP's first to increase the ;;; probability that the tail call will be a drop-through. ;;; @@ -196,7 +200,7 @@ (do-blocks (block component) (unless (block-flag block) - (event control-deleted-block (continuation-next (block-start block))) + (event control-deleted-block (block-start-node block)) (delete-block block)))) (let ((2comp (component-info component)))