factor/basis/compiler/cfg
Slava Pestov a56d480aa6 Various optimizations leading to a 10% speedup on compiling empty EBNF parser:
- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables
2008-12-06 09:16:29 -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 Start working on coalescing 2008-10-28 02:38:37 -07: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