add reference identifiers to all access expressions
[pet.git] / tests / for_while.scop
blobdf79531dc722cacac939d9c12138b379942ce018
1 start: 83
2 end: 231
3 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
4 arrays:
5 - context: '{  :  }'
6   extent: '[n] -> { __pet_test_0[x1, x2] : x1 <= -1 + n and x1 >= 0 and x2 >= 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: '[n] -> { s[] }'
13   element_type: int
14   element_size: 4
15 statements:
16 - line: 12
17   domain: '[n] -> { S1[x1] : x1 <= -1 + n and x1 >= 0 }'
18   schedule: '[n] -> { S1[x1] -> [0, x1, 0] }'
19   body:
20     type: binary
21     operation: =
22     arguments:
23     - type: access
24       relation: '[n] -> { S1[x1] -> s[] }'
25       reference: __pet_ref_0
26       read: 0
27       write: 1
28     - type: call
29       name: f
30 - line: 13
31   domain: '[n] -> { [S_1[x1, x2] -> [1]] : x1 <= -1 + n and x1 >= 0 and x2 >= 0 }'
32   schedule: '[n] -> { S_1[x1, x2] -> [0, x1, 1, x2, 0] }'
33   body:
34     type: binary
35     operation: =
36     arguments:
37     - type: access
38       relation: '[n] -> { S_1[x1, x2] -> __pet_test_0[x1, x2] }'
39       reference: __pet_ref_2
40       read: 0
41       write: 1
42     - type: call
43       name: P
44       arguments:
45       - type: access
46         relation: '[n] -> { S_1[x1, x2] -> [x1] }'
47         reference: __pet_ref_3
48         read: 1
49         write: 0
50       - type: access
51         relation: '[n] -> { S_1[x1, x2] -> [x2] }'
52         reference: __pet_ref_4
53         read: 1
54         write: 0
55   arguments:
56   - type: access
57     relation: '[n] -> { S_1[x1, x2] -> __pet_test_0[x1, o1] : o1 >= 0 and o1 <= -1
58       + x2 }'
59     reference: __pet_ref_1
60     read: 1
61     write: 0
62 - line: 14
63   domain: '[n] -> { [S2[x1, x2] -> [1]] : x1 <= -1 + n and x1 >= 0 and x2 >= 0 }'
64   schedule: '[n] -> { S2[x1, x2] -> [0, x1, 1, x2, 1, 0] }'
65   body:
66     type: binary
67     operation: =
68     arguments:
69     - type: access
70       relation: '[n] -> { S2[x1, x2] -> s[] }'
71       reference: __pet_ref_6
72       read: 0
73       write: 1
74     - type: call
75       name: g
76       arguments:
77       - type: access
78         relation: '[n] -> { S2[x1, x2] -> s[] }'
79         reference: __pet_ref_7
80         read: 1
81         write: 0
82   arguments:
83   - type: access
84     relation: '[n] -> { S2[x1, x2] -> __pet_test_0[x1, o1] : o1 >= 0 and o1 <= x2
85       }'
86     reference: __pet_ref_5
87     read: 1
88     write: 0
89 - line: 16
90   domain: '[n] -> { R[x1] : x1 <= -1 + n and x1 >= 0 }'
91   schedule: '[n] -> { R[x1] -> [0, x1, 2] }'
92   body:
93     type: call
94     name: h
95     arguments:
96     - type: access
97       relation: '[n] -> { R[x1] -> s[] }'
98       reference: __pet_ref_8
99       read: 1
100       write: 0