pet_scop: keep track of schedule tree
[pet.git] / tests / break6.scop
blob44f6a5b5b34d2f35d531f2730d6206fdcd206976
1 start: 40
2 end: 184
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_3[t] : t >= 0; S_5[t] : t >= 0; S_0[]; S_6[t] : t >= 0;
6   S_8[t] : t >= 0; S_2[t] : t >= 0; S_7[t] : t >= 0; S_4[t] : t >= 0; S_1[t] : t >=
7   0 }", child: { sequence: [ { filter: "{ S_0[] }" }, { filter: "{ S_3[t]; S_5[t];
8   S_6[t]; S_8[t]; S_2[t]; S_7[t]; S_4[t]; S_1[t] }", child: { schedule: "L_0[{ S_1[t]
9   -> [(t)]; S_3[t] -> [(t)]; S_2[t] -> [(t)]; S_7[t] -> [(t)]; S_8[t] -> [(t)]; S_4[t]
10   -> [(t)]; S_6[t] -> [(t)]; S_5[t] -> [(t)] }]", child: { sequence: [ { filter: "{
11   S_1[t] }" }, { filter: "{ S_2[t] }" }, { filter: "{ S_3[t] }" }, { filter: "{ S_4[t]
12   }" }, { filter: "{ S_5[t] }" }, { filter: "{ S_6[t] }" }, { filter: "{ S_7[t] }"
13   }, { filter: "{ S_8[t] }" } ] } } } ] } }'
14 arrays:
15 - context: '{  :  }'
16   extent: '{ __pet_test_0[t] : t >= 0 }'
17   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
18   element_type: int
19   element_size: 4
20   uniquely_defined: 1
21 - context: '{  :  }'
22   extent: '{ __pet_test_1[t] : t >= 0 }'
23   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
24   element_type: int
25   element_size: 4
26   uniquely_defined: 1
27 - context: '{  :  }'
28   extent: '{ __pet_test_2[t] : t >= 0 }'
29   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
30   element_type: int
31   element_size: 4
32   uniquely_defined: 1
33 - context: '{  :  }'
34   extent: '{ __pet_test_3[t] : t >= 0 }'
35   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
36   element_type: int
37   element_size: 4
38   uniquely_defined: 1
39 - context: '{  :  }'
40   extent: '{ a[i0] : i0 >= 0 and i0 <= 99 }'
41   element_type: int
42   element_size: 4
43 - context: '{  :  }'
44   extent: '{ i[] }'
45   element_type: int
46   element_size: 4
47 statements:
48 - line: 8
49   domain: '{ S_0[] }'
50   schedule: '{ S_0[] -> [0, 0] }'
51   body:
52     type: expression
53     expr:
54       type: op
55       operation: =
56       arguments:
57       - type: access
58         index: '{ S_0[] -> i[] }'
59         reference: __pet_ref_0
60         read: 0
61         write: 1
62       - type: call
63         name: f
64 - line: 8
65   domain: '{ [S_1[t] -> [1, 0]] : t >= 0 }'
66   schedule: '{ S_1[t] -> [0, 1, t, 0] }'
67   body:
68     type: expression
69     expr:
70       type: op
71       operation: =
72       arguments:
73       - type: access
74         index: '{ S_1[t] -> __pet_test_0[(t)] }'
75         reference: __pet_ref_3
76         read: 0
77         write: 1
78       - type: op
79         operation: <
80         arguments:
81         - type: access
82           index: '{ S_1[t] -> i[] }'
83           reference: __pet_ref_4
84           read: 1
85           write: 0
86         - type: int
87           value: 100
88   arguments:
89   - type: access
90     index: '{ S_1[t] -> __pet_test_0[((-1 + t) : t >= 1)] }'
91     reference: __pet_ref_1
92     read: 1
93     write: 0
94   - type: access
95     index: '{ S_1[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
96     reference: __pet_ref_2
97     read: 1
98     write: 0
99 - line: 9
100   domain: '{ [S_2[t] -> [1, 0]] : t >= 0 }'
101   schedule: '{ S_2[t] -> [0, 1, t, 1, 0] }'
102   body:
103     type: expression
104     expr:
105       type: op
106       operation: =
107       arguments:
108       - type: access
109         index: '{ [S_2[t] -> [i1]] -> a[((i1) : i1 >= 0)] }'
110         reference: __pet_ref_8
111         read: 0
112         write: 1
113         arguments:
114         - type: access
115           index: '{ S_2[t] -> i[] }'
116           reference: __pet_ref_7
117           read: 1
118           write: 0
119       - type: int
120         value: 0
121   arguments:
122   - type: access
123     index: '{ S_2[t] -> __pet_test_0[(t)] }'
124     reference: __pet_ref_5
125     read: 1
126     write: 0
127   - type: access
128     index: '{ S_2[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
129     reference: __pet_ref_6
130     read: 1
131     write: 0
132 - line: 10
133   domain: '{ [S_3[t] -> [1, 0]] : t >= 0 }'
134   schedule: '{ S_3[t] -> [0, 1, t, 1, 1, 0] }'
135   body:
136     type: expression
137     expr:
138       type: op
139       operation: =
140       arguments:
141       - type: access
142         index: '{ S_3[t] -> __pet_test_1[(t)] }'
143         reference: __pet_ref_11
144         read: 0
145         write: 1
146       - type: call
147         name: f
148   arguments:
149   - type: access
150     index: '{ S_3[t] -> __pet_test_0[(t)] }'
151     reference: __pet_ref_9
152     read: 1
153     write: 0
154   - type: access
155     index: '{ S_3[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
156     reference: __pet_ref_10
157     read: 1
158     write: 0
159 - line: 12
160   domain: '{ [S_4[t] -> [1, 0]] : t >= 0 }'
161   schedule: '{ S_4[t] -> [0, 1, t, 1, 2] }'
162   body:
163     type: expression
164     expr:
165       type: op
166       operation: =
167       arguments:
168       - type: access
169         index: '{ [S_4[t] -> [i1]] -> a[((i1) : i1 >= 0)] }'
170         reference: __pet_ref_15
171         read: 0
172         write: 1
173         arguments:
174         - type: access
175           index: '{ S_4[t] -> i[] }'
176           reference: __pet_ref_14
177           read: 1
178           write: 0
179       - type: int
180         value: 1
181   arguments:
182   - type: access
183     index: '{ S_4[t] -> __pet_test_0[(t)] }'
184     reference: __pet_ref_12
185     read: 1
186     write: 0
187   - type: access
188     index: '{ S_4[t] -> __pet_test_1[(t)] }'
189     reference: __pet_ref_13
190     read: 1
191     write: 0
192 - line: 13
193   domain: '{ [S_5[t] -> [1, 0]] : t >= 0 }'
194   schedule: '{ S_5[t] -> [0, 1, t, 1, 3, 0, 0] }'
195   body:
196     type: expression
197     expr:
198       type: op
199       operation: =
200       arguments:
201       - type: access
202         index: '{ S_5[t] -> __pet_test_2[(t)] }'
203         reference: __pet_ref_18
204         read: 0
205         write: 1
206       - type: call
207         name: f
208   arguments:
209   - type: access
210     index: '{ S_5[t] -> __pet_test_0[(t)] }'
211     reference: __pet_ref_16
212     read: 1
213     write: 0
214   - type: access
215     index: '{ S_5[t] -> __pet_test_1[(t)] }'
216     reference: __pet_ref_17
217     read: 1
218     write: 0
219 - line: -1
220   domain: '{ [S_6[t] -> [1, 0]] : t >= 0 }'
221   schedule: '{ S_6[t] -> [0, 1, t, 1, 3, 1] }'
222   body:
223     type: expression
224     expr:
225       type: op
226       operation: =
227       arguments:
228       - type: access
229         index: '{ S_6[t] -> __pet_test_3[(t)] }'
230         reference: __pet_ref_21
231         read: 0
232         write: 1
233       - type: op
234         operation: '?:'
235         arguments:
236         - type: access
237           index: '{ S_6[t] -> __pet_test_1[(t)] }'
238           reference: __pet_ref_22
239           read: 1
240           write: 0
241         - type: access
242           index: '{ S_6[t] -> [(1)] }'
243           reference: __pet_ref_23
244           read: 1
245           write: 0
246         - type: access
247           may_read: '{ [S_6[t] -> [0]] -> __pet_test_2[t] }'
248           index: '{ [S_6[t] -> [__pet_test_1]] -> __pet_test_2[(t)] }'
249           reference: __pet_ref_25
250           read: 1
251           write: 0
252           arguments:
253           - type: access
254             index: '{ S_6[t] -> __pet_test_1[(t)] }'
255             reference: __pet_ref_24
256             read: 1
257             write: 0
258   arguments:
259   - type: access
260     index: '{ S_6[t] -> __pet_test_0[(t)] }'
261     reference: __pet_ref_19
262     read: 1
263     write: 0
264   - type: access
265     index: '{ S_6[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
266     reference: __pet_ref_20
267     read: 1
268     write: 0
269 - line: 15
270   domain: '{ [S_7[t] -> [1, 0, 0]] : t >= 0 }'
271   schedule: '{ S_7[t] -> [0, 1, t, 1, 4] }'
272   body:
273     type: expression
274     expr:
275       type: op
276       operation: =
277       arguments:
278       - type: access
279         index: '{ [S_7[t] -> [i1]] -> a[((i1) : i1 >= 0)] }'
280         reference: __pet_ref_30
281         read: 0
282         write: 1
283         arguments:
284         - type: access
285           index: '{ S_7[t] -> i[] }'
286           reference: __pet_ref_29
287           read: 1
288           write: 0
289       - type: int
290         value: 2
291   arguments:
292   - type: access
293     index: '{ S_7[t] -> __pet_test_0[(t)] }'
294     reference: __pet_ref_26
295     read: 1
296     write: 0
297   - type: access
298     index: '{ S_7[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
299     reference: __pet_ref_27
300     read: 1
301     write: 0
302   - type: access
303     index: '{ S_7[t] -> __pet_test_3[(t)] }'
304     reference: __pet_ref_28
305     read: 1
306     write: 0
307 - line: 8
308   domain: '{ [S_8[t] -> [1, 0]] : t >= 0 }'
309   schedule: '{ S_8[t] -> [0, 1, t, 2] }'
310   body:
311     type: expression
312     expr:
313       type: op
314       operation: +=
315       arguments:
316       - type: access
317         index: '{ S_8[t] -> i[] }'
318         reference: __pet_ref_33
319         read: 0
320         write: 1
321       - type: int
322         value: 1
323   arguments:
324   - type: access
325     index: '{ S_8[t] -> __pet_test_0[(t)] }'
326     reference: __pet_ref_31
327     read: 1
328     write: 0
329   - type: access
330     index: '{ S_8[t] -> __pet_test_1[(t)] }'
331     reference: __pet_ref_32
332     read: 1
333     write: 0
334 implications:
335 - satisfied: 0
336   extension: '{ __pet_test_1[t] -> __pet_test_1[t''] : t'' <= t and t'' >= 0 }'
337 - satisfied: 1
338   extension: '{ __pet_test_0[t] -> __pet_test_0[t''] : t'' <= t and t'' >= 0 }'