(unless (or (constant-p v)
(and (global-var-p v)
(member (global-var-kind v)
- '(:global :special))))
+ '(:global :special :unknown))))
(barf "strange *FREE-VARS* entry: ~S" v))
(dolist (n (leaf-refs v))
(check-node-reached n))
(typecase last
(cif
(unless (proper-list-of-length-p succ 1 2)
- (barf "~S ends in an IF, but doesn't have one or two succesors."
+ (barf "~S ends in an IF, but doesn't have one or two successors."
block))
(unless (member (if-consequent last) succ)
(barf "The CONSEQUENT for ~S isn't in SUCC for ~S." last block))
(let ((leaf (ref-leaf node)))
(when (functional-p leaf)
(if (eq (functional-kind leaf) :toplevel-xep)
- (unless (eq (component-kind (block-component (node-block node)))
- :toplevel)
+ (unless (component-toplevelish-p (block-component (node-block node)))
(barf ":TOPLEVEL-XEP ref in non-top-level component: ~S"
node))
(check-fun-reached leaf node)))))
atypes)
(template-more-args-type info) "args")
(check-tn-refs (vop-results vop) vop t
- (if (eq rtypes :conditional) 0 (length rtypes))
+ (if (template-conditional-p info) 0 (length rtypes))
(template-more-results-type info) "results")
(check-tn-refs (vop-temps vop) vop t 0 t "temps")
(unless (= (length (vop-codegen-info vop))
(symbol (block-or-lose (gethash thing *free-funs*)))))
;;; Print cN.
-(defun print-continuation (cont)
- (declare (type continuation cont))
- (format t " c~D" (cont-num cont))
- (values))
-
(defun print-ctran (cont)
(declare (type ctran cont))
(format t "c~D " (cont-num cont))
(case (cleanup-kind cleanup)
((:dynamic-extent)
(format t "entry DX~{ v~D~}"
- (mapcar #'cont-num (cleanup-info cleanup))))
+ (mapcar (lambda (lvar-or-cell)
+ (if (consp lvar-or-cell)
+ (cons (car lvar-or-cell)
+ (cont-num (cdr lvar-or-cell)))
+ (cont-num lvar-or-cell)))
+ (cleanup-info cleanup))))
(t
(format t "entry ~S" (entry-exits node))))))
(exit