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