Utility predicates for packing: UNBOUNDED-SC-P and UNBOUNDED-TN-P
authorPaul Khuong <pvk@pvk.ca>
Wed, 13 Nov 2013 18:18:29 +0000 (13:18 -0500)
committerPaul Khuong <pvk@pvk.ca>
Mon, 2 Dec 2013 03:44:43 +0000 (22:44 -0500)
Determine if the backing storage base (or the preferred storage
class for a TN) is :UNBOUNDED, i.e., on the stack.

src/compiler/pack.lisp

index 451f83e..42e6c5e 100644 (file)
 \f
 ;;;; pack interface
 
+;; Misc. utilities
+(declaim (inline unbounded-sc-p))
+(defun unbounded-sc-p (sc)
+  (eq (sb-kind (sc-sb sc)) :unbounded))
+
+(defun unbounded-tn-p (tn)
+  (unbounded-sc-p (tn-sc tn)))
+(declaim (notinline unbounded-sc-p))
+
 ;;; Attempt to pack TN in all possible SCs, first in the SC chosen by
 ;;; representation selection, then in the alternate SCs in the order
 ;;; they were specified in the SC definition. If the TN-COST is