factor/basis/compiler/cfg
Slava Pestov 45a2105449 cpu.x86.assembler: IMUL2 instruction was busted for immediate operands
When given a register and an immediate, it would generate imul imm,dst,dst however the 64-bit prefix was generated wrong and if dst was an extended register only the first operand would be an extended register. To fix this, change IMUL2 to not work on immediates anymore, and added a new IMUL3 that takes a destination register, source register, and immediate. Also, change compiler.cfg.two-operand to not two-operandize %mul-imm, since this isn't needed anymore.
This fixes the sporadic benchmark.tuple-arrays crash on 64-bit machines.
2009-06-08 21:15:52 -05:00
..
alias-analysis Merge branch 'master' into global_optimization 2009-06-01 03:12:32 -05:00
build-stack-frame GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
builder GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
checker compiler.cfg.checker: run if a variable is set 2009-06-05 17:32:12 -05:00
copy-prop Working on global optimizations 2009-05-19 17:28:13 -05:00
dce Various codegen improvements: 2009-05-29 13:11:34 -05:00
debugger Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass 2009-05-31 12:20:46 -05:00
def-use Linear scan: build live ranges 2009-06-03 03:22:27 -05:00
dominance Refactoring low-level optimizer to support stack analysis pass 2009-05-26 19:31:19 -05:00
gc-checks GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
hats CFG optimizer work in progress - adding phi nodes 2009-05-21 16:49:28 -05:00
height Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass 2009-05-31 12:20:46 -05:00
instructions GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
intrinsics rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
iterator Fix for recent word renaming 2009-06-01 03:19:35 -05:00
linear-scan Linear scan: implement live range intersection 2009-06-06 01:04:12 -05:00
linearization GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
liveness Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass 2009-05-31 12:20:46 -05:00
local Fix compiler errors 2009-06-01 03:00:10 -05:00
mr GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
optimizer compiler.cfg.optimizer: disable CFG checker by default 2009-06-05 18:07:22 -05:00
phi-elimination Various codegen improvements: 2009-05-29 13:11:34 -05:00
predecessors Various codegen improvements: 2009-05-29 13:11:34 -05:00
registers Changing : foo ; parsing to SYNTAX: foo ; 2009-03-21 01:27:50 -05:00
rpo Fix compiler errors 2009-06-01 03:00:10 -05:00
stack-analysis Fix loop handling in stack-analysis 2009-05-31 19:04:26 -05:00
stack-frame GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
stacks Add summary for heaps more vocabs 2009-02-16 21:05:13 -06:00
two-operand cpu.x86.assembler: IMUL2 instruction was busted for immediate operands 2009-06-08 21:15:52 -05:00
useless-blocks Merge branch 'master' into global_optimization 2009-06-01 03:12:32 -05:00
utilities Working on global optimizations 2009-05-19 17:28:13 -05:00
value-numbering Remove obsolete optimization 2009-06-01 03:05:49 -05:00
write-barrier Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass 2009-05-31 12:20:46 -05:00
cfg.factor Various codegen improvements: 2009-05-29 13:11:34 -05:00
summary.txt Add summary for heaps more vocabs 2009-02-16 21:05:13 -06:00