(defun make-pv-type-declaration (var)
`(type simple-vector ,var))
-(defmacro pvref (pv index)
- `(svref ,pv ,index))
-
(defmacro copy-pv (pv)
`(copy-seq ,pv))
(let ((map (svref pv-map i)))
(when map
(aver (= (car map) 0))
- (setf (pvref pv i) (cdr map))))))
+ (setf (svref pv i) (cdr map))))))
(when (memq cwrapper wrappers)
(let ((param 0))
(dolist (wrapper wrappers)
(dotimes-fixnum (i pv-size)
(let ((map (svref pv-map i)))
(when (and map (= (car map) param))
- (setf (pvref pv i) (cdr map))))))
+ (setf (svref pv i) (cdr map))))))
(incf param))))))
\f
(defun can-optimize-access (form required-parameters env)
(let* ((index (gensym))
(value index))
`(locally (declare #.*optimize-speed*)
- (let ((,index (pvref ,pv ,pv-offset)))
+ (let ((,index (svref ,pv ,pv-offset)))
(setq ,value (typecase ,index
;; FIXME: the line marked by KLUDGE below
;; (and the analogous spot in
default
(let* ((index (gensym)))
`(locally (declare #.*optimize-speed*)
- (let ((,index (pvref ,pv ,pv-offset)))
+ (let ((,index (svref ,pv ,pv-offset)))
(typecase ,index
,@(when (or (null kind) (eq kind :instance))
`((fixnum (and ,slots
default
(let* ((index (gensym)))
`(locally (declare #.*optimize-speed*)
- (let ((,index (pvref ,pv ,pv-offset)))
+ (let ((,index (svref ,pv ,pv-offset)))
(typecase ,index
,@(when (or (null kind) (eq kind :instance))
`((fixnum (not (and ,slots