1 ! Copyright (C) 2009 Daniel Ehrenberg.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors kernel compiler.cfg compiler.cfg.dce compiler.cfg.instructions
4 compiler.cfg.registers compiler.cfg.utilities cpu.architecture tools.test ;
5 IN: compiler.cfg.dce.tests
7 : test-dce ( insns -- insns' )
8 insns>cfg dup eliminate-dead-code entry>> instructions>> ;
11 T{ ##load-integer { dst 1 } { val 8 } }
12 T{ ##load-integer { dst 2 } { val 16 } }
13 T{ ##add { dst 3 } { src1 1 } { src2 2 } }
14 T{ ##replace { src 3 } { loc D 0 } }
16 T{ ##load-integer { dst 1 } { val 8 } }
17 T{ ##load-integer { dst 2 } { val 16 } }
18 T{ ##add { dst 3 } { src1 1 } { src2 2 } }
19 T{ ##replace { src 3 } { loc D 0 } }
20 } test-dce ] unit-test
23 T{ ##load-integer { dst 1 } { val 8 } }
24 T{ ##load-integer { dst 2 } { val 16 } }
25 T{ ##add { dst 3 } { src1 1 } { src2 2 } }
26 } test-dce ] unit-test
29 T{ ##load-integer { dst 3 } { val 8 } }
30 T{ ##allot { dst 1 } { temp 2 } }
31 } test-dce ] unit-test
34 T{ ##load-integer { dst 3 } { val 8 } }
35 T{ ##allot { dst 1 } { temp 2 } }
36 T{ ##set-slot-imm { obj 1 } { src 3 } }
37 } test-dce ] unit-test
40 T{ ##load-integer { dst 3 } { val 8 } }
41 T{ ##allot { dst 1 } { temp 2 } }
42 T{ ##set-slot-imm { obj 1 } { src 3 } }
43 T{ ##replace { src 1 } { loc D 0 } }
45 T{ ##load-integer { dst 3 } { val 8 } }
46 T{ ##allot { dst 1 } { temp 2 } }
47 T{ ##set-slot-imm { obj 1 } { src 3 } }
48 T{ ##replace { src 1 } { loc D 0 } }
49 } test-dce ] unit-test
52 T{ ##allot { dst 1 } { temp 2 } }
53 T{ ##replace { src 1 } { loc D 0 } }
55 T{ ##allot { dst 1 } { temp 2 } }
56 T{ ##replace { src 1 } { loc D 0 } }
57 } test-dce ] unit-test
60 T{ ##allot { dst 1 } { temp 2 } }
61 T{ ##replace { src 1 } { loc D 0 } }
62 T{ ##load-integer { dst 3 } { val 8 } }
63 T{ ##set-slot-imm { obj 1 } { src 3 } }
65 T{ ##allot { dst 1 } { temp 2 } }
66 T{ ##replace { src 1 } { loc D 0 } }
67 T{ ##load-integer { dst 3 } { val 8 } }
68 T{ ##set-slot-imm { obj 1 } { src 3 } }
69 } test-dce ] unit-test