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