X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgtn.lisp;h=4a3352f6ef173aba8ef0e8ceae2b16e8c7ec0e9b;hb=df679ed627975948b1cee190f4d79c397588c43e;hp=876e14a79cf9186ed11048a4cec44c78ba4b1cab;hpb=20748f2dd7965dcd1446a1cb27e5a5af18a0e5bb;p=sbcl.git diff --git a/src/compiler/gtn.lisp b/src/compiler/gtn.lisp index 876e14a..4a3352f 100644 --- a/src/compiler/gtn.lisp +++ b/src/compiler/gtn.lisp @@ -73,9 +73,9 @@ reversed-ir2-physenv-alist))) (let ((res (make-ir2-physenv - :environment (nreverse reversed-ir2-physenv-alist) + :closure (nreverse reversed-ir2-physenv-alist) :return-pc-pass (make-return-pc-passing-location - (external-entry-point-p clambda))))) + (xep-p clambda))))) (setf (physenv-info lambda-physenv) res) (setf (ir2-physenv-old-fp res) (make-old-fp-save-location lambda-physenv)) @@ -111,7 +111,7 @@ (defun use-standard-returns (tails) (declare (type tail-set tails)) (let ((funs (tail-set-funs tails))) - (or (and (find-if #'external-entry-point-p funs) + (or (and (find-if #'xep-p funs) (find-if #'has-full-call-use funs)) (block punt (dolist (fun funs t) @@ -167,7 +167,8 @@ (multiple-value-bind (types count) (values-types (tail-set-type tails)) (let ((ptypes (mapcar #'primitive-type types)) (use-standard (use-standard-returns tails))) - (when (and (eq count :unknown) (not use-standard)) + (when (and (eq count :unknown) (not use-standard) + (not (eq (tail-set-type tails) *empty-type*))) (return-value-efficiency-note tails)) (if (or (eq count :unknown) use-standard) (make-return-info :kind :unknown @@ -192,7 +193,7 @@ (return (lambda-return fun))) (when (and return (not (eq (return-info-kind returns) :unknown)) - (external-entry-point-p fun)) + (xep-p fun)) (do-uses (use (return-result return)) (setf (node-tail-p use) nil)))) (values))