Implemented a pattern based peephole optimizer.
authorStephen Adams <edu/mit/csail/zurich/adams>
Wed, 22 Oct 1997 06:47:47 +0000 (06:47 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Wed, 22 Oct 1997 06:47:47 +0000 (06:47 +0000)
commitabb9331ce3cd6dcfd424e64b4999a46742d1ba53
tree4fedeab1868545ce2c1846a2b713e8130d18abe8
parentd95a684ca148dff8fa8bc80e4bd4616488b122a5
Implemented a pattern based peephole optimizer.

Main improvements:

 1. every CONS-[MULTI]CLOSURE saves one instruction
 2. most funcalls save one stack access
 3. fixnum arithmetic (plus and minus constants)
 4. fixnum case of generic add/subtract constant
 5. fixnum bitwise operations with constants (and/or/not)

1 and 2 give about 5% on closure/funcall heavy code.

3-5 are improvements made possible by the screwy fixnum tag.
`Natural' fixnum tags would make them obsolete (but some of the
rewrites are as good). 5 improves hash table operations up to 10% due
to how `flags' are implemented.
v7/src/compiler/machines/i386/lapopt.scm