0.8.3.5:
[sbcl.git] / src / compiler / array-tran.lisp
index b6b7c51..fa3e7aa 100644 (file)
 
 (defoptimizer (aref derive-type) ((array &rest indices) node)
   (assert-array-rank array (length indices))
-  ;; If the node continuation has a single use then assert its type.
-  (let ((cont (node-cont node)))
-    (when (= (length (find-uses cont)) 1)
-      (assert-continuation-type cont (extract-upgraded-element-type array)
-                                (lexenv-policy (node-lexenv node)))))
   (extract-upgraded-element-type array))
 
 (defoptimizer (%aset derive-type) ((array &rest stuff))
                    (make-array (length bit-array-1) :element-type 'bit)))
                ;; If result is T, make it the first arg.
                (deftransform ,fun ((bit-array-1 bit-array-2 result-bit-array)
-                                   (bit-vector bit-vector (member t)) *)
+                                   (bit-vector bit-vector (eql t)) *)
                  `(,',fun bit-array-1 bit-array-2 bit-array-1)))))
   (def bit-and)
   (def bit-ior)
   '(bit-not bit-array-1
            (make-array (length bit-array-1) :element-type 'bit)))
 (deftransform bit-not ((bit-array-1 result-bit-array)
-                      (bit-vector (constant-arg t)))
+                      (bit-vector (eql t)))
   '(bit-not bit-array-1 bit-array-1))
-;;; FIXME: What does (CONSTANT-ARG T) mean? Is it the same thing
-;;; as (CONSTANT-ARG (MEMBER T)), or does it mean any constant
-;;; value?
 \f
 ;;; Pick off some constant cases.
 (defoptimizer (array-header-p derive-type) ((array))