projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.8.8: restore reuse-sap value after incomplete writes in FROB-OUTPUT-LATER
[sbcl.git]
/
src
/
compiler
/
knownfun.lisp
diff --git
a/src/compiler/knownfun.lisp
b/src/compiler/knownfun.lisp
index
811b0be
..
078b9f1
100644
(file)
--- a/
src/compiler/knownfun.lisp
+++ b/
src/compiler/knownfun.lisp
@@
-61,6
+61,10
@@
;; in the safe code. If a function MUST signal errors, then it is
;; not unsafely-flushable even if it is movable or foldable.
unsafely-flushable
;; in the safe code. If a function MUST signal errors, then it is
;; not unsafely-flushable even if it is movable or foldable.
unsafely-flushable
+ ;; return value is important, and ignoring it is probably a mistake.
+ ;; Unlike the other attributes, this is used only for style
+ ;; warnings and has no effect on optimization.
+ important-result
;; may be moved with impunity. Has no side effects except possibly
;; consing, and is affected only by its arguments.
;;
;; may be moved with impunity. Has no side effects except possibly
;; consing, and is affected only by its arguments.
;;
@@
-81,7
+85,12
@@
;; The function does explicit argument type checking, so the
;; declared type should not be asserted when a definition is
;; compiled.
;; The function does explicit argument type checking, so the
;; declared type should not be asserted when a definition is
;; compiled.
- explicit-check)
+ explicit-check
+ ;; The function should always be translated by a VOP (i.e. it should
+ ;; should never be converted into a full call). This is used strictly
+ ;; as a consistency checking mechanism inside the compiler during IR2
+ ;; transformation.
+ always-translatable)
(defstruct (fun-info #-sb-xc-host (:pure t))
;; boolean attributes of this function.
(defstruct (fun-info #-sb-xc-host (:pure t))
;; boolean attributes of this function.
@@
-186,7
+195,8
@@
;;; and optimizers.
(declaim (ftype (function (list list attributes &key
(:derive-type (or function null))
;;; and optimizers.
(declaim (ftype (function (list list attributes &key
(:derive-type (or function null))
- (:optimizer (or function null)))
+ (:optimizer (or function null))
+ (:destroyed-constant-args (or function null)))
*)
%defknown))
(defun %defknown (names type attributes &key derive-type optimizer destroyed-constant-args)
*)
%defknown))
(defun %defknown (names type attributes &key derive-type optimizer destroyed-constant-args)