- ;; :DELETED and :UNUSED continuations. Note that blocks that are
- ;; unreachable but still in the DFO may receive deleted
- ;; continuations, so it isn't o.k. to assume that any continuation
- ;; that you pick up out of its DEST node has a BLOCK.
- (block nil :type (or cblock null))
- ;; set to true when something about this continuation's value has
- ;; changed. See REOPTIMIZE-CONTINUATION. This provides a way for IR1
+ ;; :UNUSED continuations.
+ (block nil :type (or cblock null)))
+
+(def!method print-object ((x ctran) stream)
+ (print-unreadable-object (x stream :type t :identity t)
+ (format stream "~D" (cont-num x))))
+
+;;; Linear VARiable. Multiple-value (possibly of unknown number)
+;;; temporal storage.
+(def!struct (lvar
+ (:make-load-form-fun ignore-it)
+ (:constructor make-lvar (&optional dest)))
+ ;; The node which receives this value. NIL only temporarily.
+ (dest nil :type (or node null))
+ ;; cached type of this lvar's value. If NIL, then this must be
+ ;; recomputed: see LVAR-DERIVED-TYPE.
+ (%derived-type nil :type (or ctype null))
+ ;; the node (if unique) or a list of nodes where this lvar is used.
+ (uses nil :type (or node list))
+ ;; set to true when something about this lvar's value has
+ ;; changed. See REOPTIMIZE-LVAR. This provides a way for IR1