SSA destruction uses new SSA liveness checking
parent
d349cc565a
commit
cf7ab59fb7
|
@ -8,7 +8,7 @@ compiler.cfg.def-use
|
||||||
compiler.cfg.renaming
|
compiler.cfg.renaming
|
||||||
compiler.cfg.dominance
|
compiler.cfg.dominance
|
||||||
compiler.cfg.instructions
|
compiler.cfg.instructions
|
||||||
compiler.cfg.liveness.ssa
|
compiler.cfg.ssa.liveness
|
||||||
compiler.cfg.ssa.cssa
|
compiler.cfg.ssa.cssa
|
||||||
compiler.cfg.ssa.interference
|
compiler.cfg.ssa.interference
|
||||||
compiler.cfg.ssa.interference.live-ranges
|
compiler.cfg.ssa.interference.live-ranges
|
||||||
|
@ -97,11 +97,11 @@ M: insn prepare-insn drop ;
|
||||||
: destruct-ssa ( cfg -- cfg' )
|
: destruct-ssa ( cfg -- cfg' )
|
||||||
dup cfg-has-phis? [
|
dup cfg-has-phis? [
|
||||||
dup construct-cssa
|
dup construct-cssa
|
||||||
compute-ssa-live-sets
|
dup precompute-liveness
|
||||||
dup compute-defs
|
dup compute-defs
|
||||||
dup compute-dominance
|
dup compute-dominance
|
||||||
dup compute-live-ranges
|
dup compute-live-ranges
|
||||||
dup prepare-coalescing
|
dup prepare-coalescing
|
||||||
process-copies
|
process-copies
|
||||||
dup perform-renaming
|
dup perform-renaming
|
||||||
] when ;
|
] when ;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: accessors compiler.cfg compiler.cfg.debugger
|
USING: accessors compiler.cfg compiler.cfg.debugger
|
||||||
compiler.cfg.def-use compiler.cfg.dominance
|
compiler.cfg.def-use compiler.cfg.dominance
|
||||||
compiler.cfg.instructions compiler.cfg.liveness.ssa
|
compiler.cfg.instructions compiler.cfg.ssa.liveness
|
||||||
compiler.cfg.registers compiler.cfg.predecessors
|
compiler.cfg.registers compiler.cfg.predecessors
|
||||||
compiler.cfg.ssa.interference
|
compiler.cfg.ssa.interference
|
||||||
compiler.cfg.ssa.interference.live-ranges cpu.architecture
|
compiler.cfg.ssa.interference.live-ranges cpu.architecture
|
||||||
|
@ -9,8 +9,8 @@ IN: compiler.cfg.ssa.interference.tests
|
||||||
|
|
||||||
: test-interference ( -- )
|
: test-interference ( -- )
|
||||||
cfg new 0 get >>entry
|
cfg new 0 get >>entry
|
||||||
compute-ssa-live-sets
|
|
||||||
compute-predecessors
|
compute-predecessors
|
||||||
|
dup precompute-liveness
|
||||||
dup compute-defs
|
dup compute-defs
|
||||||
dup compute-dominance
|
dup compute-dominance
|
||||||
compute-live-ranges ;
|
compute-live-ranges ;
|
||||||
|
@ -49,4 +49,4 @@ V{
|
||||||
[ t ] [ V int-regs 3 V int-regs 5 vregs-interfere? ] unit-test
|
[ t ] [ V int-regs 3 V int-regs 5 vregs-interfere? ] unit-test
|
||||||
[ t ] [ V int-regs 5 V int-regs 3 vregs-interfere? ] unit-test
|
[ t ] [ V int-regs 5 V int-regs 3 vregs-interfere? ] unit-test
|
||||||
[ f ] [ V int-regs 3 V int-regs 6 vregs-interfere? ] unit-test
|
[ f ] [ V int-regs 3 V int-regs 6 vregs-interfere? ] unit-test
|
||||||
[ f ] [ V int-regs 6 V int-regs 3 vregs-interfere? ] unit-test
|
[ f ] [ V int-regs 6 V int-regs 3 vregs-interfere? ] unit-test
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors assocs fry kernel namespaces sequences math
|
USING: accessors assocs fry kernel namespaces sequences math
|
||||||
arrays compiler.cfg.def-use compiler.cfg.instructions
|
arrays compiler.cfg.def-use compiler.cfg.instructions
|
||||||
compiler.cfg.liveness.ssa compiler.cfg.rpo ;
|
compiler.cfg.ssa.liveness compiler.cfg.rpo ;
|
||||||
IN: compiler.cfg.ssa.interference.live-ranges
|
IN: compiler.cfg.ssa.interference.live-ranges
|
||||||
|
|
||||||
! Live ranges for interference testing
|
! Live ranges for interference testing
|
||||||
|
|
Loading…
Reference in New Issue