From: Juho S. <js...@us...> - 2007-06-11 04:23:14
|
Update of /cvsroot/sbcl/sbcl/src/code In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv16255/src/code Modified Files: array.lisp Log Message: 1.0.6.45: fix compilation speed regression from DATA-VECTOR-REF-WITH-OFFSET * Change the remaining x86oid DATA-VECTOR-REF VOPs to DATA-VECTOR-REF-WITH-OFFSETs. The VOPs only accept an offset of 0, and are thus functionally identical to the old ones. * This allows replacing the conditional deftransform from D-V-R to D-V-R-W-O with an unconditional source-transform. * Rewrite transformations with (OR (SIMPLE-UNBOXED-ARRAY (*)) SIMPLE-VECTOR) argument types to instead do the type tests in the body of the transform, since the test can be expressed in a cheaper way in the latter case. Index: array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/array.lisp,v retrieving revision 1.68 retrieving revision 1.69 diff -u -d -r1.68 -r1.69 --- array.lisp 28 May 2007 18:52:26 -0000 1.68 +++ array.lisp 11 Jun 2007 04:23:11 -0000 1.69 @@ -482,6 +482,9 @@ (defun data-vector-ref (array index) (hairy-data-vector-ref array index)) +(defun data-vector-ref-with-offset (array index offset) + (hairy-data-vector-ref array (+ index offset))) + ;;; SUBSCRIPTS has a dynamic-extent list structure and is destroyed (defun %array-row-major-index (array subscripts &optional (invalid-index-error-p t)) |