projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.41.11: gc: Interrupt contexts and stacks should be scavenged per-thread.
[sbcl.git]
/
src
/
compiler
/
constraint.lisp
diff --git
a/src/compiler/constraint.lisp
b/src/compiler/constraint.lisp
index
de2beec
..
eb936ba
100644
(file)
--- a/
src/compiler/constraint.lisp
+++ b/
src/compiler/constraint.lisp
@@
-158,7
+158,7
@@
#-sb-xc-host ignore
#-sb-xc-host constraint-universe-end)
(let* ((constraint-universe #+sb-xc-host '*constraint-universe*
#-sb-xc-host ignore
#-sb-xc-host constraint-universe-end)
(let* ((constraint-universe #+sb-xc-host '*constraint-universe*
- #-sb-xc-host (gensym))
+ #-sb-xc-host (sb!xc:gensym "UNIVERSE"))
(with-array-data
#+sb-xc-host '(progn)
#-sb-xc-host `(with-array-data
(with-array-data
#+sb-xc-host '(progn)
#-sb-xc-host `(with-array-data
@@
-357,7
+357,7
@@
(let ((new (make-constraint (length *constraint-universe*)
kind x y not-p)))
(vector-push-extend new *constraint-universe*
(let ((new (make-constraint (length *constraint-universe*)
kind x y not-p)))
(vector-push-extend new *constraint-universe*
- (* 2 (length *constraint-universe*)))
+ (1+ (length *constraint-universe*)))
(conset-adjoin new (lambda-var-constraints x))
(when (lambda-var-p y)
(conset-adjoin new (lambda-var-constraints y)))
(conset-adjoin new (lambda-var-constraints x))
(when (lambda-var-p y)
(conset-adjoin new (lambda-var-constraints y)))
@@
-468,7
+468,8
@@
(ok-lvar-lambda-var (first args) constraints)
(if (ctype-p val)
val
(ok-lvar-lambda-var (first args) constraints)
(if (ctype-p val)
val
- (specifier-type val))
+ (let ((*compiler-error-context* use))
+ (specifier-type val)))
nil)))))
((eq eql)
(let* ((arg1 (first args))
nil)))))
((eq eql)
(let* ((arg1 (first args))
@@
-490,7
+491,11
@@
(var2
(add 'eql var1 var2 nil))
((constant-lvar-p arg2)
(var2
(add 'eql var1 var2 nil))
((constant-lvar-p arg2)
- (add 'eql var1 (ref-leaf (principal-lvar-use arg2))
+ (add 'eql var1
+ (let ((use (principal-lvar-use arg2)))
+ (if (ref-p use)
+ (ref-leaf use)
+ (find-constant (lvar-value arg2))))
nil))
(t
(add-test-constraint 'typep var1 (lvar-type arg2)
nil))
(t
(add-test-constraint 'typep var1 (lvar-type arg2)