From: stassats <sta...@us...> - 2018-01-17 18:59:53
|
The branch "master" has been updated in SBCL: via 53098145304f5a24468157caefa0db322910eb0e (commit) from 11089458c7a52f9eac4b6ef5b5d64bfa74852841 (commit) - Log ----------------------------------------------------------------- commit 53098145304f5a24468157caefa0db322910eb0e Author: Stas Boukarev <sta...@gm...> Date: Wed Jan 17 21:50:06 2018 +0300 More maybe-terminate-block. After some derive-node-type. --- src/compiler/ir1opt.lisp | 4 +++- src/compiler/srctran.lisp | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/compiler/ir1opt.lisp b/src/compiler/ir1opt.lisp index a89dbeb..aa0d458 100644 --- a/src/compiler/ir1opt.lisp +++ b/src/compiler/ir1opt.lisp @@ -964,7 +964,7 @@ ;;; ;;; Why do we need to consider LVAR type? -- APD, 2003-07-30 (defun maybe-terminate-block (node ir1-converting-not-optimizing-p) - (declare (type (or basic-combination cast ref) node)) + (declare (type (or basic-combination cast cset ref) node)) (let* ((block (node-block node)) (lvar (node-lvar node)) (ctran (node-next node)) @@ -1550,6 +1550,7 @@ (let ((s-int (make-single-value-type int))) (dolist (ref refs) (derive-node-type ref s-int) + (maybe-terminate-block ref nil) ;; KLUDGE: LET var substitution (let* ((lvar (node-lvar ref))) (when (and lvar (combination-p (lvar-dest lvar))) @@ -1658,6 +1659,7 @@ (let ((old-type (node-derived-type set))) (unless (values-subtypep old-type type) (derive-node-type set (make-single-value-type type)) + (maybe-terminate-block set nil) (setf changes t))) (setf (node-reoptimize set) nil)))) (when changes diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp index b4f976f..7855f95 100644 --- a/src/compiler/srctran.lisp +++ b/src/compiler/srctran.lisp @@ -3806,9 +3806,6 @@ (csubtypep x equal-types)) element-types)))))) (cond - ((or (eq x-type *empty-type*) - (eq y-type *empty-type*)) - nil) ((same-leaf-ref-p x y) t) ((array-type-dimensions-mismatch x-type y-type) nil) ----------------------------------------------------------------------- hooks/post-receive -- SBCL |