factor/basis/compiler/cfg
Slava Pestov c1c8424605 Compiler speedups 2009-08-02 09:16:21 -05:00
..
alias-analysis Move liveness back to compiler.cfg.liveness, fix a corner-case where it didn't work on some forms of non-SSA code 2009-07-22 06:07:28 -05:00
block-joining compiler.cfg.linearization: rotate loops. 2x speedup with empty times loop, 1.5x speedup on benchmark.dawes 2009-07-28 21:31:08 -05:00
branch-splitting compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
build-stack-frame compiler.cfg: if a block has an instruction that kills values it must be the only instruction in the block 2009-07-19 20:12:04 -05:00
builder compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction 2009-07-28 09:34:08 -05:00
checker compiler.cfg: Minor optimization. Instructions can now only ever produce a single value; this eliminates 1array constructions and some iterations 2009-07-28 12:29:07 -05:00
comparisons compiler.cfg: split off condition codes into a comparisons sub-vocabulary 2009-07-13 14:42:52 -05:00
copy-prop compiler.cfg.copy-prop: eliminate phi nodes that have the same inputs as a previous phi node in the basic block 2009-08-01 22:33:27 -05:00
critical-edges compiler.cfg.critical-edges: update ##phi nodes 2009-08-02 06:17:22 -05:00
dataflow-analysis Fix bootstrap 2009-07-22 03:26:27 -05:00
dce compiler.cfg: change representation of ##phi nodes. The input slot of ##phi nodes is now an assoc mapping predecessors to values, rather than a sequence of values. This ensures that optimization which delete predecessors can be implemented 2009-07-02 17:10:50 -05:00
debugger compiler.cfg.debugger: fix load error 2009-08-02 08:11:04 -05:00
def-use compiler.cfg: Minor optimization. Instructions can now only ever produce a single value; this eliminates 1array constructions and some iterations 2009-07-28 12:29:07 -05:00
dominance compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
empty-blocks compiler.cfg.empty-blocks: new pass to delete empty blocks, runs after phi elimination 2009-07-23 18:02:46 -05:00
gc-checks compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
hats compiler.cfg: introduce less temporaries when building CFG 2009-07-24 03:37:18 -05:00
instructions compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation 2009-07-30 09:19:44 -05:00
intrinsics compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation 2009-07-30 09:19:44 -05:00
linear-scan Compiler speedups 2009-08-02 09:16:21 -05:00
linearization compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation 2009-07-30 09:19:44 -05:00
liveness compiler.cfg.utilities: add each-phi combinator to iterate over all ##phi instructions in a basic block 2009-08-02 06:16:58 -05:00
mr compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework 2009-07-22 03:08:28 -05:00
optimizer compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa 2009-07-28 12:56:33 -05:00
parallel-copy compiler.cfg.linear-scan: fix resolve pass 2009-07-28 08:47:35 -05:00
predecessors compiler.cfg.utilities: add each-phi combinator to iterate over all ##phi instructions in a basic block 2009-08-02 06:16:58 -05:00
registers compiler.cfg.registers: minor optimization 2009-07-21 17:49:44 -05:00
renaming compiler.cfg.linear-scan.assignment: modifies instructions in place instead of storing a registers assoc for further compile-time performance improvement 2009-07-29 06:36:14 -05:00
rpo compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework 2009-07-22 03:08:28 -05:00
ssa compiler.cfg.ssa.destruction.copies: factor out add-instructions combinator into compiler.cfg.utilities 2009-08-02 08:20:50 -05:00
stack-frame compiler.cfg: clean up GC check generation to use spill-slot data type 2009-07-03 23:11:23 -05:00
stacks Compiler speedups 2009-08-02 09:16:21 -05:00
tco Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint 2009-07-16 18:29:40 -05:00
two-operand Compiler speedups 2009-08-02 09:16:21 -05:00
useless-conditionals compiler.cfg: Some code cleanups, update stack-analysis and phi-insertion to work on CFGs with critical edges 2009-07-12 22:22:46 -05:00
utilities compiler.cfg.ssa.destruction.copies: factor out add-instructions combinator into compiler.cfg.utilities 2009-08-02 08:20:50 -05:00
value-numbering compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
write-barrier compiler.cfg: Fixing test failures 2009-07-24 06:08:07 -05:00
cfg-tests.factor Fix conflict 2009-06-30 21:37:49 -05:00
cfg.factor compiler.cfg: Some code cleanups, update stack-analysis and phi-insertion to work on CFGs with critical edges 2009-07-12 22:22:46 -05:00
summary.txt Add summary for heaps more vocabs 2009-02-16 21:05:13 -06:00