X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fknownfun.lisp;h=078b9f103128eab5feab65b5fda026dcf56ae9bf;hb=279283bc1724b60ef9ebbf31ab4837061989be18;hp=cbe6892acf9824106840f69a7d7079f1a3f690b6;hpb=83a96ea32f132597c70b314080d150235ef2944a;p=sbcl.git diff --git a/src/compiler/knownfun.lisp b/src/compiler/knownfun.lisp index cbe6892..078b9f1 100644 --- 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 + ;; 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. ;; @@ -81,7 +85,12 @@ ;; 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.