Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

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 NEWS
changed package-data-list.lisp-expr
changed src
changed src/code
changed src/code/bignum.lisp
changed src/code/early-extensions.lisp
changed src/compiler
changed src/compiler/aliencomp.lisp
changed src/compiler/array-tran.lisp
changed src/compiler/fndb.lisp
changed src/compiler/generic
changed src/compiler/generic/utils.lisp
changed src/compiler/generic/vm-fndb.lisp
changed src/compiler/generic/vm-tran.lisp
changed src/compiler/ir1opt.lisp
changed src/compiler/ir1util.lisp
changed src/compiler/saptran.lisp
changed src/compiler/x86
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 version.lisp-expr
NEWS Diff Switch to side-by-side view
Loading...
package-data-list.lisp-expr Diff Switch to side-by-side view
Loading...
src
Directory.
src/code
Directory.
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
Directory.
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/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/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...
src/compiler/x86
Directory.
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...
version.lisp-expr Diff Switch to side-by-side view
Loading...