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