X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fvop.lisp;h=d738a0ab4243bc175a69203ba4e4e7dd1fa72a24;hb=69d60b456b07a0256f08df0d02484f361ce5737c;hp=bf743c206e821b88f828770b180b82f84a253b54;hpb=bffa99d35c7d50ac46b9eb7dbe25d1ab1a0e6145;p=sbcl.git diff --git a/src/compiler/vop.lisp b/src/compiler/vop.lisp index bf743c2..d738a0a 100644 --- a/src/compiler/vop.lisp +++ b/src/compiler/vop.lisp @@ -215,13 +215,7 @@ ;; these TNs primitive type is only based on the proven type ;; information. (locs nil :type list) - #!+stack-grows-downward-not-upward (stack-pointer nil :type (or tn null))) -;; For upward growing stack start of stack block and start of object -;; differ only by lowtag. -#!-stack-grows-downward-not-upward -(defmacro ir2-lvar-stack-pointer (2lvar) - `(first (ir2-lvar-locs ,2lvar))) (defprinter (ir2-lvar) kind @@ -319,8 +313,9 @@ ;;; this case the slots aren't actually initialized until entry ;;; analysis runs. (defstruct (entry-info (:copier nil)) - ;; Does this function have a non-null closure environment? - (closure-p nil :type boolean) + ;; TN, containing closure (if needed) for this function in the home + ;; environment. + (closure-tn nil :type (or null tn)) ;; a label pointing to the entry vector for this function, or NIL ;; before ENTRY-ANALYZE runs (offset nil :type (or label null)) @@ -422,8 +417,7 @@ save-sp dynamic-state) -(defstruct (cloop (:print-function print-cloop) - (:conc-name loop-) +(defstruct (cloop (:conc-name loop-) (:predicate loop-p) (:constructor make-loop) (:copier copy-loop)) @@ -456,7 +450,7 @@ ;; on INFERIORS to find all the blocks. (blocks nil :type (or null cblock))) -(defprinter (cloop :conc-name LOOP-) +(defprinter (cloop :conc-name loop-) kind head tail