factor/basis/compiler/cfg
Slava Pestov 145b635eb6 More optimization intended to reduce compile time. Another 10% speedup on compiling empty PEG parser
- new map-flat combinator replaces usages of 'map flatten' in compiler
- compiler.tree.def-use.simplified uses an explicit accumulator instead of flatten
- compiler.tree.tuple-unboxing uses an explicit accumulator instead of flatten
- fix inlining regression from last time: custom inlining results would sometimes be discarded
- compiler.tree's 3each and 3map combinators rewritten to not use flip
- rewrite math.partial-dispatch without locals (purely stylistic, no performance increase)
- hand-optimize flip for common arrays-of-arrays case
- don't run escape analysis and tuple unboxing if there are no allocations in the IR
2008-12-06 11:17:19 -06:00
..
alias-analysis Various optimizations leading to a 10% speedup on compiling empty EBNF parser: 2008-12-06 09:16:29 -06:00
builder Didn't generate ##branch after ##alien-invoke and ##alien-indirect 2008-11-29 03:46:57 -06:00
copy-prop Alias analysis 2008-10-22 18:37:47 -05:00
dead-code Move insn class to compiler.cfg.instructions 2008-10-24 09:17:06 -05:00
debugger Coalescing 2008-11-02 01:49:57 -06:00
def-use Tweak string representation; high bit indicates if character has high bits in aux vector. Avoids memory access in common case. Split set-string-nth into two primitives; set-string-nth-fast is open-coded by optimizing compiler. 13% improvement on reverse-complement 2008-12-05 06:38:51 -06:00
hats Various optimizations leading to a 10% speedup on compiling empty EBNF parser: 2008-12-06 09:16:29 -06:00
height Move insn class to compiler.cfg.instructions 2008-10-24 09:17:06 -05:00
instructions Various optimizations leading to a 10% speedup on compiling empty EBNF parser: 2008-12-06 09:16:29 -06:00
intrinsics Various optimizations leading to a 10% speedup on compiling empty EBNF parser: 2008-12-06 09:16:29 -06:00
iterator Fix #dispatch generation 2008-10-12 16:46:59 -05:00
linear-scan Add tool to dump live intervals 2008-11-04 17:23:20 -06:00
linearization Emit branches in the same order they're written in code 2008-11-13 03:52:01 -06:00
optimizer Optimize away useless jumps 2008-11-02 23:09:31 -06:00
predecessors Optimize away useless jumps 2008-11-02 23:09:31 -06:00
registers Massive focused action 2008-10-22 18:39:41 -05:00
rpo Emit branches in the same order they're written in code 2008-11-13 03:52:01 -06:00
stack-frame More work on overflow instructions: don't need temp register anymore, add -tail variants which don't need stack frame 2008-11-28 06:36:30 -06:00
stacks Trying to make PEGs compile faster by reducing the number of low level IR nodes: merge functionality of #>r and #r> into #shuffle, and generate 1 node instead of 3 for calls to get-local 2008-11-11 18:46:31 -06:00
two-operand More optimization intended to reduce compile time. Another 10% speedup on compiling empty PEG parser 2008-12-06 11:17:19 -06:00
useless-blocks Optimize away useless jumps 2008-11-02 23:09:31 -06:00
utilities More work on overflow instructions: don't need temp register anymore, add -tail variants which don't need stack frame 2008-11-28 06:36:30 -06:00
value-numbering ##fixnum-add, ##fixnum-sub instructions open-code overflow check 2008-11-28 05:33:58 -06:00
write-barrier Move insn class to compiler.cfg.instructions 2008-10-24 09:17:06 -05:00
cfg.factor Optimize away useless jumps 2008-11-02 23:09:31 -06:00