break up access relations into may_read/may_write/must_write
[pet.git] / tests / continue4.scop
blob2b0990d8d2a4dbda4a37e5808d6f45dfc776fce0
1 start: 47
2 end: 216
3 indent: "\t"
4 context: '{  :  }'
5 arrays:
6 - context: '{  :  }'
7   extent: '{ __pet_test_0[i] : i >= 0 and i <= 99 }'
8   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
9   element_type: int
10   element_size: 4
11   uniquely_defined: 1
12 - context: '{  :  }'
13   extent: '{ __pet_test_1[i] : i >= 0 and i <= 99 }'
14   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
15   element_type: int
16   element_size: 4
17   uniquely_defined: 1
18 - context: '{  :  }'
19   extent: '{ a[i0] : i0 >= 0 and i0 <= 99 }'
20   element_type: int
21   element_size: 4
22 - context: '{  :  }'
23   extent: '{ j[] }'
24   element_type: int
25   element_size: 4
26 statements:
27 - line: 9
28   domain: '{ S_0[i] : i >= 0 and i <= 99 }'
29   schedule: '{ S_0[i] -> [0, i, 0] }'
30   body:
31     type: expression
32     expr:
33       type: op
34       operation: =
35       arguments:
36       - type: access
37         index: '{ S_0[i] -> j[] }'
38         reference: __pet_ref_0
39         read: 0
40         write: 1
41       - type: call
42         name: f
43 - line: 10
44   domain: '{ S_1[i] : i >= 0 and i <= 99 }'
45   schedule: '{ S_1[i] -> [0, i, 1, 0] }'
46   body:
47     type: expression
48     expr:
49       type: op
50       operation: =
51       arguments:
52       - type: access
53         index: '{ S_1[i] -> __pet_test_0[(i)] }'
54         reference: __pet_ref_1
55         read: 0
56         write: 1
57       - type: op
58         operation: ==
59         arguments:
60         - type: access
61           index: '{ S_1[i] -> j[] }'
62           reference: __pet_ref_2
63           read: 1
64           write: 0
65         - type: int
66           value: 0
67 - line: 12
68   domain: '{ [S_2[i] -> [0]] : i >= 0 and i <= 99 }'
69   schedule: '{ S_2[i] -> [0, i, 2] }'
70   body:
71     type: expression
72     expr:
73       type: op
74       operation: =
75       arguments:
76       - type: access
77         index: '{ S_2[i] -> a[(i)] }'
78         reference: __pet_ref_4
79         read: 0
80         write: 1
81       - type: access
82         index: '{ S_2[i] -> [(i)] }'
83         reference: __pet_ref_5
84         read: 1
85         write: 0
86   arguments:
87   - type: access
88     index: '{ S_2[i] -> __pet_test_0[(i)] }'
89     reference: __pet_ref_3
90     read: 1
91     write: 0
92 - line: 13
93   domain: '{ [S_3[i] -> [0]] : i >= 0 and i <= 99 }'
94   schedule: '{ S_3[i] -> [0, i, 3] }'
95   body:
96     type: expression
97     expr:
98       type: op
99       operation: =
100       arguments:
101       - type: access
102         index: '{ S_3[i] -> j[] }'
103         reference: __pet_ref_7
104         read: 0
105         write: 1
106       - type: call
107         name: f
108   arguments:
109   - type: access
110     index: '{ S_3[i] -> __pet_test_0[(i)] }'
111     reference: __pet_ref_6
112     read: 1
113     write: 0
114 - line: -1
115   domain: '{ S_4[i] : i >= 0 and i <= 99 }'
116   schedule: '{ S_4[i] -> [0, i, 4, 1] }'
117   body:
118     type: expression
119     expr:
120       type: op
121       operation: =
122       arguments:
123       - type: access
124         index: '{ S_4[i] -> __pet_test_1[(i)] }'
125         reference: __pet_ref_8
126         read: 0
127         write: 1
128       - type: op
129         operation: '?:'
130         arguments:
131         - type: access
132           index: '{ S_4[i] -> __pet_test_0[(i)] }'
133           reference: __pet_ref_9
134           read: 1
135           write: 0
136         - type: access
137           index: '{ S_4[i] -> [(1)] }'
138           reference: __pet_ref_10
139           read: 1
140           write: 0
141         - type: access
142           may_read: '{ [S_4[i] -> [0]] -> [0] : i >= 58 or i <= 56; [S_4[57] -> [0]]
143             -> [1] }'
144           index: '{ [S_4[i] -> [__pet_test_0]] -> [((1) : i = 57; (0) : i <= 56 or
145             i >= 58)] }'
146           reference: __pet_ref_12
147           read: 1
148           write: 0
149           arguments:
150           - type: access
151             index: '{ S_4[i] -> __pet_test_0[(i)] }'
152             reference: __pet_ref_11
153             read: 1
154             write: 0
155 - line: 16
156   domain: '{ [S_5[i] -> [0]] : i >= 0 and i <= 99 }'
157   schedule: '{ S_5[i] -> [0, i, 5] }'
158   body:
159     type: expression
160     expr:
161       type: op
162       operation: =
163       arguments:
164       - type: access
165         index: '{ S_5[i] -> a[(i)] }'
166         reference: __pet_ref_14
167         read: 0
168         write: 1
169       - type: op
170         operation: +
171         arguments:
172         - type: access
173           index: '{ S_5[i] -> a[(i)] }'
174           reference: __pet_ref_15
175           read: 1
176           write: 0
177         - type: int
178           value: 1
179   arguments:
180   - type: access
181     index: '{ S_5[i] -> __pet_test_1[(i)] }'
182     reference: __pet_ref_13
183     read: 1
184     write: 0