projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Annotate disassembly with unboxed constant values
[sbcl.git]
/
src
/
code
/
defboot.lisp
diff --git
a/src/code/defboot.lisp
b/src/code/defboot.lisp
index
778a7ab
..
9f3bf28
100644
(file)
--- a/
src/code/defboot.lisp
+++ b/
src/code/defboot.lisp
@@
-152,7
+152,8
@@
evaluated as a PROGN."
(defun inline-fun-name-p (name)
(or
;; the normal reason for saving the inline expansion
(defun inline-fun-name-p (name)
(or
;; the normal reason for saving the inline expansion
- (info :function :inlinep name)
+ (let ((inlinep (info :function :inlinep name)))
+ (member inlinep '(:inline :maybe-inline)))
;; another reason for saving the inline expansion: If the
;; ANSI-recommended idiom
;; (DECLAIM (INLINE FOO))
;; another reason for saving the inline expansion: If the
;; ANSI-recommended idiom
;; (DECLAIM (INLINE FOO))
@@
-181,10
+182,8
@@
evaluated as a PROGN."
(lambda `(lambda ,@lambda-guts))
#-sb-xc-host
(named-lambda `(named-lambda ,name ,@lambda-guts))
(lambda `(lambda ,@lambda-guts))
#-sb-xc-host
(named-lambda `(named-lambda ,name ,@lambda-guts))
- (inline-type (inline-fun-name-p name))
(inline-lambda
(inline-lambda
- (when (and inline-type
- (neq inline-type :notinline))
+ (when (inline-fun-name-p name)
;; we want to attempt to inline, so complain if we can't
(or (sb!c:maybe-inline-syntactic-closure lambda env)
(progn
;; we want to attempt to inline, so complain if we can't
(or (sb!c:maybe-inline-syntactic-closure lambda env)
(progn
@@
-361,17
+360,18
@@
evaluated as a PROGN."
;; var.
(multiple-value-bind (forms decls) (parse-body body :doc-string-allowed nil)
(let* ((n-list (gensym "N-LIST"))
;; var.
(multiple-value-bind (forms decls) (parse-body body :doc-string-allowed nil)
(let* ((n-list (gensym "N-LIST"))
- (start (gensym "START"))
- (tmp (gensym "TMP")))
+ (start (gensym "START")))
(multiple-value-bind (clist members clist-ok)
(cond ((sb!xc:constantp list env)
(let ((value (constant-form-value list env)))
(multiple-value-bind (clist members clist-ok)
(cond ((sb!xc:constantp list env)
(let ((value (constant-form-value list env)))
- (multiple-value-bind (all dot) (list-members value)
- (when dot
+ (multiple-value-bind (all dot) (list-members value :max-length 20)
+ (when (eql dot t)
;; Full warning is too much: the user may terminate the loop
;; early enough. Contents are still right, though.
(style-warn "Dotted list ~S in DOLIST." value))
;; Full warning is too much: the user may terminate the loop
;; early enough. Contents are still right, though.
(style-warn "Dotted list ~S in DOLIST." value))
- (values value all t))))
+ (if (eql dot :maybe)
+ (values value nil nil)
+ (values value all t)))))
((and (consp list) (eq 'list (car list))
(every (lambda (arg) (sb!xc:constantp arg env)) (cdr list)))
(let ((values (mapcar (lambda (arg) (constant-form-value arg env)) (cdr list))))
((and (consp list) (eq 'list (car list))
(every (lambda (arg) (sb!xc:constantp arg env)) (cdr list)))
(let ((values (mapcar (lambda (arg) (constant-form-value arg env)) (cdr list))))
@@
-383,10
+383,9
@@
evaluated as a PROGN."
(tagbody
,start
(unless (endp ,n-list)
(tagbody
,start
(unless (endp ,n-list)
- (let* (,@(if clist-ok
- `((,tmp (truly-the (member ,@members) (car ,n-list)))
- (,var ,tmp))
- `((,var (car ,n-list)))))
+ (let ((,var ,(if clist-ok
+ `(truly-the (member ,@members) (car ,n-list))
+ `(car ,n-list))))
,@decls
(setq ,n-list (cdr ,n-list))
(tagbody ,@forms))
,@decls
(setq ,n-list (cdr ,n-list))
(tagbody ,@forms))
@@
-550,6
+549,7
@@
evaluated as a PROGN."
clauses))))
`(block ,block-tag
(let ((,temp-var nil))
clauses))))
`(block ,block-tag
(let ((,temp-var nil))
+ (declare (ignorable ,temp-var))
(tagbody
(restart-bind
,(mapcar (lambda (datum)
(tagbody
(restart-bind
,(mapcar (lambda (datum)