1.0.10.50: short-circuit LVAR type derivation when type becomes T
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 19 Oct 2007 13:57:11 +0000 (13:57 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 19 Oct 2007 13:57:11 +0000 (13:57 +0000)
* Even if there are uses we have not considered yet,
  %LVAR-DERIVED-TYPE can stop if the type turns into the universal
  type.

src/compiler/ir1opt.lisp
version.lisp-expr

index 98a5a93..c93f4b0 100644 (file)
@@ -57,7 +57,8 @@
                      (values-type-union (node-derived-type (first current))
                                         res))
                 (current (rest uses) (rest current)))
-               ((null current) res)))
+               ((or (null current) (eq res *wild-type*))
+                res)))
           (t
            (node-derived-type (lvar-uses lvar))))))
 
index dffce32..02d1ab1 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.10.49"
+"1.0.10.50"