projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.28.34: convert once-used DEFMACROs to EVAL-WHEN'd SB!XC:DEFMACROs
[sbcl.git]
/
src
/
compiler
/
locall.lisp
diff --git
a/src/compiler/locall.lisp
b/src/compiler/locall.lisp
index
7cb638b
..
1c6db26
100644
(file)
--- a/
src/compiler/locall.lisp
+++ b/
src/compiler/locall.lisp
@@
-65,7
+65,7
@@
(let* ((other (trivial-lambda-var-ref-lvar use)))
(unless (eq other lvar)
(handle-nested-dynamic-extent-lvars dx other)))))))
(let* ((other (trivial-lambda-var-ref-lvar use)))
(unless (eq other lvar)
(handle-nested-dynamic-extent-lvars dx other)))))))
- (cons lvar
+ (cons (cons dx lvar)
(if (listp uses)
(loop for use in uses
when (use-good-for-dx-p use dx)
(if (listp uses)
(loop for use in uses
when (use-good-for-dx-p use dx)
@@
-95,8
+95,8
@@
(make-lexenv :default (node-lexenv call)
:cleanup cleanup))
(push entry (lambda-entries (node-home-lambda entry)))
(make-lexenv :default (node-lexenv call)
:cleanup cleanup))
(push entry (lambda-entries (node-home-lambda entry)))
- (dolist (lvar dx-lvars)
- (setf (lvar-dynamic-extent lvar) cleanup)))))
+ (dolist (cell dx-lvars)
+ (setf (lvar-dynamic-extent (cdr cell)) cleanup)))))
(values))
;;; This function handles merging the tail sets if CALL is potentially
(values))
;;; This function handles merging the tail sets if CALL is potentially
@@
-210,9
+210,6
@@
do (entries `((eql ,n-supplied ,n)
(%funcall ,(force ep) ,@(subseq temps 0 n)))))
`(lambda (,n-supplied ,@temps)
do (entries `((eql ,n-supplied ,n)
(%funcall ,(force ep) ,@(subseq temps 0 n)))))
`(lambda (,n-supplied ,@temps)
- ;; FIXME: Make sure that INDEX type distinguishes between
- ;; target and host. (Probably just make the SB!XC:DEFTYPE
- ;; different from CL:DEFTYPE.)
(declare (type index ,n-supplied))
(cond
,@(if more (butlast (entries)) (entries))
(declare (type index ,n-supplied))
(cond
,@(if more (butlast (entries)) (entries))
@@
-220,8
+217,7
@@
;; KLUDGE: (NOT (< ...)) instead of >= avoids one round of
;; deftransforms and lambda-conversion.
`((,(if (zerop min) t `(not (< ,n-supplied ,max)))
;; KLUDGE: (NOT (< ...)) instead of >= avoids one round of
;; deftransforms and lambda-conversion.
`((,(if (zerop min) t `(not (< ,n-supplied ,max)))
- ,(let ((n-context (gensym))
- (n-count (gensym)))
+ ,(with-unique-names (n-context n-count)
`(multiple-value-bind (,n-context ,n-count)
(%more-arg-context ,n-supplied ,max)
(locally
`(multiple-value-bind (,n-context ,n-count)
(%more-arg-context ,n-supplied ,max)
(locally