mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
Undo.
This commit is contained in:
parent
0a2ba825c7
commit
5cb50200e4
|
|
@ -1605,7 +1605,6 @@
|
|||
(declare (type component component))
|
||||
(init-var-constraints component)
|
||||
;; Previous results can confuse propagation and may loop forever
|
||||
(print-all-blocks component)
|
||||
(do-blocks (block component)
|
||||
(setf (block-out block) nil)
|
||||
(let ((last (block-last block)))
|
||||
|
|
|
|||
|
|
@ -679,20 +679,17 @@
|
|||
(let ((use-home (node-home-lambda use)))
|
||||
(cond ((or (eq (functional-kind use-home) :deleted)
|
||||
(block-delete-p (node-block use))))
|
||||
((and (basic-combination-p use)
|
||||
(or (eq (functional-kind (combination-lambda use)) :deleted)
|
||||
(and (eq (basic-combination-kind use) :local)
|
||||
(block-delete-p (lambda-block (combination-lambda use)))))))
|
||||
(t;; (not (and (basic-combination-p use)
|
||||
;; (eq (basic-combination-kind use) :local)))
|
||||
((not (and (basic-combination-p use)
|
||||
(eq (basic-combination-kind use) :local)))
|
||||
(use-union (node-derived-type use)))
|
||||
((or (eq (functional-kind (combination-lambda use)) :deleted)
|
||||
(block-delete-p (lambda-block (combination-lambda use)))))
|
||||
(t
|
||||
;; (aver (eq (lambda-tail-set use-home)
|
||||
;; (lambda-tail-set (combination-lambda use))))
|
||||
;; (when (combination-p use)
|
||||
;; (when (nth-value 1 (maybe-convert-tail-local-call use))
|
||||
;; (return-from find-result-type t)))
|
||||
))))
|
||||
(aver (eq (lambda-tail-set use-home)
|
||||
(lambda-tail-set (combination-lambda use))))
|
||||
(when (combination-p use)
|
||||
(when (nth-value 1 (maybe-convert-tail-local-call use))
|
||||
(return-from find-result-type t)))))))
|
||||
(let ((int
|
||||
;; (values-type-intersection
|
||||
;; (continuation-asserted-type result) ; FIXME -- APD, 2002-01-26
|
||||
|
|
|
|||
|
|
@ -1363,20 +1363,6 @@
|
|||
(return nil)))
|
||||
(t (return nil)))))))
|
||||
|
||||
(defun local-tail-local-p (call)
|
||||
(let ((return (node-dest call))
|
||||
(fun (combination-lambda call)))
|
||||
(and (return-p return)
|
||||
(immediately-used-p (return-result return) call)
|
||||
(only-harmless-cleanups (node-block call)
|
||||
(node-block return))
|
||||
;; If the call is in an XEP, we might decide to make it
|
||||
;; non-tail so that we can use known return inside the
|
||||
;; component.
|
||||
(not (eq (functional-kind (node-home-lambda call))
|
||||
:external))
|
||||
(not (block-delete-p (lambda-block fun))))))
|
||||
|
||||
;;; If a potentially TR local call really is TR, then convert it to
|
||||
;;; jump directly to the called function. We also call
|
||||
;;; MAYBE-CONVERT-TO-ASSIGNMENT. The first value is true if we
|
||||
|
|
@ -1456,7 +1442,7 @@
|
|||
(return nil))
|
||||
(let ((home (node-home-lambda ref)))
|
||||
(if (eq home fun)
|
||||
(unless (local-tail-local-p dest)
|
||||
(unless (node-tail-p dest)
|
||||
(return nil))
|
||||
(let ((dest-ctran
|
||||
(or (node-next dest)
|
||||
|
|
|
|||
Loading…
Reference in a new issue