]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/cfg/dce/dce-tests.factor
factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test
[factor.git] / basis / compiler / cfg / dce / dce-tests.factor
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
6
7 : test-dce ( insns -- insns' )
8     insns>cfg dup eliminate-dead-code entry>> instructions>> ;
9
10 { V{
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 } }
15 } } [ V{
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
21
22 { V{ } } [ V{
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
27
28 { V{ } } [ V{
29     T{ ##load-integer { dst 3 } { val 8 } }
30     T{ ##allot { dst 1 } { temp 2 } }
31 } test-dce ] unit-test
32
33 { V{ } } [ V{
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
38
39 { V{
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 } }
44 } } [ V{
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
50
51 { V{
52     T{ ##allot { dst 1 } { temp 2 } }
53     T{ ##replace { src 1 } { loc D 0 } }
54 } } [ V{
55     T{ ##allot { dst 1 } { temp 2 } }
56     T{ ##replace { src 1 } { loc D 0 } }
57 } test-dce ] unit-test
58
59 { V{
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 } }
64 } } [ V{
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