]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/cfg/linear-scan/resolve/resolve-tests.factor
factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!
[factor.git] / basis / compiler / cfg / linear-scan / resolve / resolve-tests.factor
1 USING: compiler.cfg.linear-scan.resolve tools.test kernel namespaces
2 accessors
3 compiler.cfg
4 compiler.cfg.instructions cpu.architecture make sequences
5 compiler.cfg.linear-scan.allocation.state ;
6 IN: compiler.cfg.linear-scan.resolve.tests
7
8 {
9     {
10         {
11             T{ location f T{ spill-slot f 0 } int-rep int-regs }
12             T{ location f 1 int-rep int-regs }
13         }
14     }
15 } [
16     [
17         0 <spill-slot> 1 int-rep add-mapping
18     ] { } make
19 ] unit-test
20
21 {
22     {
23         T{ ##reload { dst 1 } { rep int-rep } { src T{ spill-slot f 0 } } }
24     }
25 } [
26     [
27         T{ location f T{ spill-slot f 0 } int-rep int-regs }
28         T{ location f 1 int-rep int-regs }
29         >insn
30     ] { } make
31 ] unit-test
32
33 {
34     {
35         T{ ##spill { src 1 } { rep int-rep } { dst T{ spill-slot f 0 } } }
36     }
37 } [
38     [
39         T{ location f 1 int-rep int-regs }
40         T{ location f T{ spill-slot f 0 } int-rep int-regs }
41         >insn
42     ] { } make
43 ] unit-test
44
45 {
46     {
47         T{ ##copy { src 1 } { dst 2 } { rep int-rep } }
48     }
49 } [
50     [
51         T{ location f 1 int-rep int-regs }
52         T{ location f 2 int-rep int-regs }
53         >insn
54     ] { } make
55 ] unit-test
56
57 {
58     {
59         T{ ##copy { src 1 } { dst 2 } { rep int-rep } }
60         T{ ##branch }
61     }
62 } [
63     { { T{ location f 1 int-rep int-regs } T{ location f 2 int-rep int-regs } } }
64     mapping-instructions
65 ] unit-test
66
67 {
68     {
69         T{ ##spill { src 0 } { rep int-rep } { dst T{ spill-slot f 0 } } }
70         T{ ##reload { dst 0 } { rep tagged-rep } { src T{ spill-slot f 1 } } }
71         T{ ##branch }
72     }
73 } [
74     {
75         { T{ location f T{ spill-slot f 1 } tagged-rep int-regs } T{ location f 0 tagged-rep int-regs } }
76         { T{ location f 0 int-rep int-regs } T{ location f T{ spill-slot f 0 } int-rep int-regs } }
77     }
78     mapping-instructions
79 ] unit-test
80
81 {
82     {
83         T{ ##spill { src 0 } { rep int-rep } { dst T{ spill-slot f 1 } } }
84         T{ ##reload { dst 0 } { rep tagged-rep } { src T{ spill-slot f 0 } } }
85         T{ ##branch }
86     }
87 } [
88     {
89         { T{ location f T{ spill-slot f 0 } tagged-rep int-regs } T{ location f 0 tagged-rep int-regs } }
90         { T{ location f 0 int-rep int-regs } T{ location f T{ spill-slot f 1 } int-rep int-regs } }
91     }
92     mapping-instructions
93 ] unit-test
94
95 {
96     {
97         T{ ##spill { src 0 } { rep int-rep } { dst T{ spill-slot f 1 } } }
98         T{ ##reload { dst 0 } { rep tagged-rep } { src T{ spill-slot f 0 } } }
99         T{ ##branch }
100     }
101 } [
102     {
103         { T{ location f 0 int-rep int-regs } T{ location f T{ spill-slot f 1 } int-rep int-regs } }
104         { T{ location f T{ spill-slot f 0 } tagged-rep int-regs } T{ location f 0 tagged-rep int-regs } }
105     }
106     mapping-instructions
107 ] unit-test
108
109 cfg new 8 >>spill-area-size cfg set
110 init-resolve
111
112 { t } [
113     {
114         { T{ location f 0 int-rep int-regs } T{ location f 1 int-rep int-regs } }
115         { T{ location f 1 int-rep int-regs } T{ location f 0 int-rep int-regs } }
116     }
117     mapping-instructions {
118         {
119             T{ ##spill { src 0 } { rep int-rep } { dst T{ spill-slot f 8 } } }
120             T{ ##copy { dst 0 } { src 1 } { rep int-rep } }
121             T{ ##reload { dst 1 } { rep int-rep } { src T{ spill-slot f 8 } } }
122             T{ ##branch }
123         }
124         {
125             T{ ##spill { src 1 } { rep int-rep } { dst T{ spill-slot f 8 } } }
126             T{ ##copy { dst 1 } { src 0 } { rep int-rep } }
127             T{ ##reload { dst 0 } { rep int-rep } { src T{ spill-slot f 8 } } }
128             T{ ##branch }
129         }
130     } member?
131 ] unit-test