Commit [51e63f] Maximize Restore History

1.0.2.1: DATA-VECTOR-{REF,SET}-WITH-OFFSET for the x86

Compile calls of (AREF FOO (+ INDEX <constant>) more efficiently:
... turn DATA-VECTOR-{REF,SET} into
DATA-VECTOR-{REF,SET}-WITH-OFFSET when the element type of FOO
is at least 8 bits wide;
... introduce general mechanism for optimization of such calls;
... redo the x86 DATA-VECTOR-FOO VOPs, reducing the number of such
VOPs in the process;
... do the same for BIGNUM-REF and SAP-REF-FOO.

Upshot: 5-10% increase in performance on array-heavy code such
as Ironclad; a 20% increase in performance has been observed
on cellular automata codes. Some restrictions apply; see the
KLUDGE in src/compiler/generic/vm-tran for an example.

Nathan Froyd Nathan Froyd 2007-01-27

changed src/code/bignum.lisp
changed src/code/early-extensions.lisp
changed src/compiler/generic/utils.lisp
changed src/compiler/generic/vm-fndb.lisp
changed src/compiler/generic/vm-tran.lisp
changed src/compiler/x86/arith.lisp
changed src/compiler/x86/array.lisp
changed src/compiler/x86/macros.lisp
changed src/compiler/x86/parms.lisp
changed src/compiler/x86/sap.lisp
changed src/compiler/aliencomp.lisp
changed src/compiler/array-tran.lisp
changed src/compiler/fndb.lisp
changed src/compiler/ir1opt.lisp
changed src/compiler/ir1util.lisp
changed src/compiler/saptran.lisp
changed NEWS
changed package-data-list.lisp-expr
changed version.lisp-expr
src/code/bignum.lisp Diff Switch to side-by-side view
Loading...
src/code/early-extensions.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/utils.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/vm-fndb.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/vm-tran.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/arith.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/array.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/macros.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/parms.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/sap.lisp Diff Switch to side-by-side view
Loading...
src/compiler/aliencomp.lisp Diff Switch to side-by-side view
Loading...
src/compiler/array-tran.lisp Diff Switch to side-by-side view
Loading...
src/compiler/fndb.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ir1opt.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ir1util.lisp Diff Switch to side-by-side view
Loading...
src/compiler/saptran.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...
package-data-list.lisp-expr Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...