70 lines
2.1 KiB
Factor
70 lines
2.1 KiB
Factor
! Copyright (C) 2009 Daniel Ehrenberg.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: accessors kernel compiler.cfg compiler.cfg.dce compiler.cfg.instructions
|
|
compiler.cfg.registers compiler.cfg.utilities cpu.architecture tools.test ;
|
|
IN: compiler.cfg.dce.tests
|
|
|
|
: test-dce ( insns -- insns' )
|
|
insns>cfg dup eliminate-dead-code entry>> instructions>> ;
|
|
|
|
{ V{
|
|
T{ ##load-integer { dst 1 } { val 8 } }
|
|
T{ ##load-integer { dst 2 } { val 16 } }
|
|
T{ ##add { dst 3 } { src1 1 } { src2 2 } }
|
|
T{ ##replace { src 3 } { loc D: 0 } }
|
|
} } [ V{
|
|
T{ ##load-integer { dst 1 } { val 8 } }
|
|
T{ ##load-integer { dst 2 } { val 16 } }
|
|
T{ ##add { dst 3 } { src1 1 } { src2 2 } }
|
|
T{ ##replace { src 3 } { loc D: 0 } }
|
|
} test-dce ] unit-test
|
|
|
|
{ V{ } } [ V{
|
|
T{ ##load-integer { dst 1 } { val 8 } }
|
|
T{ ##load-integer { dst 2 } { val 16 } }
|
|
T{ ##add { dst 3 } { src1 1 } { src2 2 } }
|
|
} test-dce ] unit-test
|
|
|
|
{ V{ } } [ V{
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
} test-dce ] unit-test
|
|
|
|
{ V{ } } [ V{
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
|
} test-dce ] unit-test
|
|
|
|
{ V{
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
|
T{ ##replace { src 1 } { loc D: 0 } }
|
|
} } [ V{
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
|
T{ ##replace { src 1 } { loc D: 0 } }
|
|
} test-dce ] unit-test
|
|
|
|
{ V{
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
T{ ##replace { src 1 } { loc D: 0 } }
|
|
} } [ V{
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
T{ ##replace { src 1 } { loc D: 0 } }
|
|
} test-dce ] unit-test
|
|
|
|
{ V{
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
T{ ##replace { src 1 } { loc D: 0 } }
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
|
} } [ V{
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
T{ ##replace { src 1 } { loc D: 0 } }
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
|
} test-dce ] unit-test
|