pet_scop: keep track of schedule tree
[pet.git] / tests / wdp.scop
blobcb6664bbf48e223998f7f163d04ef7c0149342e9
1 start: 248
2 end: 619
3 indent: "\t"
4 context: '[N] -> {  : N >= 8 and N <= 16 }'
5 schedule: '{ domain: "[N] -> { S_3[i] : i >= 0 and i <= -1 + N; S_4[i] : i >= 0 and
6   i <= -1 + N; S_6[i] : i >= 0 and i <= -1 + N; S_7[i] : i >= 0 and i <= -1 + N; S_1[i]
7   : N <= 2147483646 and i >= 0 and i <= N; S_5[i] : i >= 0 and i <= -1 + N; S_0[i]
8   : i >= 0 and i <= -1 + N; S_2[i] : N <= 2147483645 and i >= 0 and i <= 1 + N }",
9   child: { sequence: [ { filter: "[N] -> { S_0[i] }", child: { schedule: "[N] -> L_0[{
10   S_0[i] -> [(i)] }]" } }, { filter: "[N] -> { S_1[i] }", child: { schedule: "[N]
11   -> L_1[{ S_1[i] -> [(i)] }]" } }, { filter: "[N] -> { S_2[i] }", child: { schedule:
12   "[N] -> L_2[{ S_2[i] -> [(i)] }]" } }, { filter: "[N] -> { S_3[i]; S_4[i]; S_6[i];
13   S_7[i]; S_5[i] }", child: { schedule: "[N] -> L_3[{ S_3[i] -> [(i)]; S_5[i] -> [(i)];
14   S_7[i] -> [(i)]; S_6[i] -> [(i)]; S_4[i] -> [(i)] }]", child: { sequence: [ { filter:
15   "[N] -> { S_3[i] }" }, { filter: "[N] -> { S_4[i] }" }, { filter: "[N] -> { S_5[i]
16   }" }, { filter: "[N] -> { S_6[i] }" }, { filter: "[N] -> { S_7[i] }" } ] } } } ]
17   } }'
18 arrays:
19 - context: '{  :  }'
20   extent: '[N] -> { __pet_test_0[i] : i >= 0 and i <= -1 + N }'
21   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
22   element_type: int
23   element_size: 4
24   uniquely_defined: 1
25 - context: '[N] -> {  : N <= 2147483646 and N >= -1 }'
26   extent: '[N] -> { t[i0] : i0 <= N and i0 >= 0 }'
27   element_type: int
28   element_size: 4
29 - context: '[N] -> {  : N >= 0 }'
30   extent: '[N] -> { x[i0] : i0 >= 0 and i0 <= -1 + N }'
31   element_type: int
32   element_size: 4
33 - context: '[N] -> {  : N <= 2147483646 and N >= -1 }'
34   extent: '[N] -> { y[i0] : i0 <= N and i0 >= 0 }'
35   element_type: int
36   element_size: 4
37 - context: '[N] -> {  : N <= 2147483645 and N >= -2 }'
38   extent: '[N] -> { z[i0] : i0 <= 1 + N and i0 >= 0 }'
39   element_type: int
40   element_size: 4
41 statements:
42 - line: 19
43   domain: '[N] -> { S_0[i] : i >= 0 and i <= -1 + N }'
44   schedule: '[N] -> { S_0[i] -> [0, i] }'
45   body:
46     type: expression
47     expr:
48       type: op
49       operation: =
50       arguments:
51       - type: access
52         index: '[N] -> { S_0[i] -> x[(i)] }'
53         reference: __pet_ref_0
54         read: 0
55         write: 1
56       - type: call
57         name: _Source_x
58 - line: 22
59   domain: '[N] -> { S_1[i] : i <= N and i >= 0 }'
60   schedule: '[N] -> { S_1[i] -> [1, i] }'
61   body:
62     type: expression
63     expr:
64       type: call
65       name: _Source_yt
66       arguments:
67       - type: op
68         operation: '&'
69         arguments:
70         - type: access
71           index: '[N] -> { S_1[i] -> y[(i)] }'
72           reference: __pet_ref_1
73           read: 0
74           write: 1
75       - type: op
76         operation: '&'
77         arguments:
78         - type: access
79           index: '[N] -> { S_1[i] -> t[(i)] }'
80           reference: __pet_ref_2
81           read: 0
82           write: 1
83 - line: 25
84   domain: '[N] -> { S_2[i] : i <= 1 + N and i >= 0 }'
85   schedule: '[N] -> { S_2[i] -> [2, i] }'
86   body:
87     type: expression
88     expr:
89       type: op
90       operation: =
91       arguments:
92       - type: access
93         index: '[N] -> { S_2[i] -> z[(i)] }'
94         reference: __pet_ref_3
95         read: 0
96         write: 1
97       - type: call
98         name: _Source_z
99 - line: 29
100   domain: '[N] -> { [S_3[i] -> [0]] : i >= 0 and i <= -1 + N }'
101   schedule: '[N] -> { S_3[i] -> [3, i, 0] }'
102   body:
103     type: expression
104     expr:
105       type: op
106       operation: =
107       arguments:
108       - type: access
109         index: '[N] -> { S_3[i] -> x[(i)] }'
110         reference: __pet_ref_5
111         read: 0
112         write: 1
113       - type: call
114         name: F1
115         arguments:
116         - type: access
117           index: '[N] -> { S_3[i] -> x[(i)] }'
118           reference: __pet_ref_6
119           read: 1
120           write: 0
121   arguments:
122   - type: access
123     index: '[N] -> { S_3[i] -> z[(i)] }'
124     reference: __pet_ref_4
125     read: 1
126     write: 0
127 - line: 30
128   domain: '[N] -> { S_4[i] : i >= 0 and i <= -1 + N }'
129   schedule: '[N] -> { S_4[i] -> [3, i, 1, 0] }'
130   body:
131     type: expression
132     expr:
133       type: op
134       operation: =
135       arguments:
136       - type: access
137         index: '[N] -> { S_4[i] -> __pet_test_0[(i)] }'
138         reference: __pet_ref_7
139         read: 0
140         write: 1
141       - type: op
142         operation: '>'
143         arguments:
144         - type: op
145           operation: '*'
146           arguments:
147           - type: access
148             index: '[N] -> { S_4[i] -> x[(i)] }'
149             reference: __pet_ref_8
150             read: 1
151             write: 0
152           - type: access
153             index: '[N] -> { S_4[i] -> x[(i)] }'
154             reference: __pet_ref_9
155             read: 1
156             write: 0
157         - type: int
158           value: 100
159 - line: 31
160   domain: '[N] -> { [S_5[i] -> [1]] : i >= 0 and i <= -1 + N }'
161   schedule: '[N] -> { S_5[i] -> [3, i, 1, 1, 0] }'
162   body:
163     type: expression
164     expr:
165       type: op
166       operation: =
167       arguments:
168       - type: access
169         index: '[N] -> { S_5[i] -> y[(1 + i)] }'
170         reference: __pet_ref_11
171         read: 0
172         write: 1
173       - type: call
174         name: F2
175         arguments:
176         - type: access
177           index: '[N] -> { S_5[i] -> y[(i)] }'
178           reference: __pet_ref_12
179           read: 1
180           write: 0
181   arguments:
182   - type: access
183     index: '[N] -> { S_5[i] -> __pet_test_0[(i)] }'
184     reference: __pet_ref_10
185     read: 1
186     write: 0
187 - line: 32
188   domain: '[N] -> { [S_6[i] -> [1]] : i >= 0 and i <= -1 + N }'
189   schedule: '[N] -> { S_6[i] -> [3, i, 1, 1, 1] }'
190   body:
191     type: expression
192     expr:
193       type: op
194       operation: =
195       arguments:
196       - type: access
197         index: '[N] -> { S_6[i] -> t[(i)] }'
198         reference: __pet_ref_14
199         read: 0
200         write: 1
201       - type: call
202         name: F3
203         arguments:
204         - type: access
205           index: '[N] -> { S_6[i] -> t[(i)] }'
206           reference: __pet_ref_15
207           read: 1
208           write: 0
209   arguments:
210   - type: access
211     index: '[N] -> { S_6[i] -> __pet_test_0[(i)] }'
212     reference: __pet_ref_13
213     read: 1
214     write: 0
215 - line: 34
216   domain: '[N] -> { S_7[i] : i >= 0 and i <= -1 + N }'
217   schedule: '[N] -> { S_7[i] -> [3, i, 2] }'
218   body:
219     type: expression
220     expr:
221       type: call
222       name: F4
223       arguments:
224       - type: access
225         index: '[N] -> { S_7[i] -> y[(1 + i)] }'
226         reference: __pet_ref_16
227         read: 1
228         write: 0
229       - type: access
230         index: '[N] -> { S_7[i] -> z[(i)] }'
231         reference: __pet_ref_17
232         read: 1
233         write: 0
234       - type: op
235         operation: '&'
236         arguments:
237         - type: access
238           index: '[N] -> { S_7[i] -> y[(1 + i)] }'
239           reference: __pet_ref_18
240           read: 0
241           write: 1
242       - type: op
243         operation: '&'
244         arguments:
245         - type: access
246           index: '[N] -> { S_7[i] -> z[(2 + i)] }'
247           reference: __pet_ref_19
248           read: 0
249           write: 1