support inlining of outermost call expressions
[pet.git] / tests / inline9.scop
blobe8c6aec8cb1bd161c04f05e63dc938c03b3c8a09
1 start: 298
2 end: 380
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_3[i] : i >= 0 and i <= 9; S_5[i] : i >= 0 and i <= 9; S_0[];
6   S_6[i] : i >= 0 and i <= 9; S_8[i, i''] : i >= 0 and i <= 9 and i'' >= 0 and i''
7   <= 19; S_2[i] : i >= 0 and i <= 9; S_7[i] : i >= 0 and i <= 9; S_4[i] : i >= 0 and
8   i <= 9; S_1[] }", child: { sequence: [ { filter: "{ S_0[] }" }, { filter: "{ S_1[]
9   }" }, { filter: "{ S_3[i]; S_5[i]; S_6[i]; S_8[i, i'']; S_2[i]; S_7[i]; S_4[i] }",
10   child: { schedule: "L_0[{ S_8[i, i''] -> [(i)]; S_6[i] -> [(i)]; S_3[i] -> [(i)];
11   S_4[i] -> [(i)]; S_5[i] -> [(i)]; S_2[i] -> [(i)]; S_7[i] -> [(i)] }]", child: {
12   sequence: [ { filter: "{ S_2[i] }" }, { filter: "{ S_3[i] }" }, { filter: "{ S_5[i]
13   }" }, { filter: "{ S_6[i] }" }, { filter: "{ S_8[i, i''] }", child: { schedule:
14   "L_1[{ S_8[i, i''] -> [(i'')] }]" } }, { filter: "{ S_7[i] }" }, { filter: "{ S_4[i]
15   }" } ] } } } ] } }'
16 types:
17 - name: s
18   definition: "struct s {\n    int a[30][40];\n    int b[50];\n}"
19 arrays:
20 - context: '{  :  }'
21   extent: '{ a[] }'
22   element_type: int
23   element_size: 4
24   declared: 1
25   exposed: 1
26 - context: '{  :  }'
27   extent: '{ __pet_arg_0[] }'
28   element_type: int
29   element_size: 4
30   declared: 1
31 - context: '{  :  }'
32   extent: '{ a_0[] }'
33   element_type: int
34   element_size: 4
35   declared: 1
36 - context: '{  :  }'
37   extent: '{ s[i0, i1] : i0 >= 0 and i1 >= 0 and i0 <= 9 and i1 <= 19 }'
38   element_type: struct s
39   element_size: 5000
40   element_is_record: 1
41 - context: '{  :  }'
42   extent: '{ s_a[s[i0, i1] -> a[i2, i3]] : i0 >= 0 and i1 >= 0 and i0 <= 9 and i1
43     <= 19 and i2 >= 0 and i3 >= 0 and i2 <= 29 and i3 <= 39 }'
44   element_type: int
45   element_size: 4
46 - context: '{  :  }'
47   extent: '{ s_b[s[i0, i1] -> b[i2]] : i0 >= 0 and i1 >= 0 and i0 <= 9 and i1 <= 19
48     and i2 >= 0 and i2 <= 49 }'
49   element_type: int
50   element_size: 4
51 statements:
52 - line: 26
53   domain: '{ S_0[] }'
54   body:
55     type: expression
56     expr:
57       type: op
58       operation: kill
59       arguments:
60       - type: access
61         killed: '{ S_0[] -> a[] }'
62         index: '{ S_0[] -> a[] }'
63         reference: __pet_ref_0
64         kill: 1
65 - line: 26
66   domain: '{ S_1[] }'
67   body:
68     type: expression
69     expr:
70       type: op
71       operation: =
72       arguments:
73       - type: access
74         index: '{ S_1[] -> a[] }'
75         reference: __pet_ref_1
76         read: 0
77         write: 1
78       - type: int
79         value: 1
80 - line: -1
81   domain: '{ S_2[i] : i >= 0 and i <= 9 }'
82   body:
83     type: expression
84     expr:
85       type: op
86       operation: kill
87       arguments:
88       - type: access
89         killed: '{ S_2[i] -> __pet_arg_0[] }'
90         index: '{ S_2[i] -> __pet_arg_0[] }'
91         reference: __pet_ref_2
92         kill: 1
93 - line: -1
94   domain: '{ S_3[i] : i >= 0 and i <= 9 }'
95   body:
96     type: expression
97     expr:
98       type: op
99       operation: =
100       arguments:
101       - type: access
102         index: '{ S_3[i] -> __pet_arg_0[] }'
103         reference: __pet_ref_3
104         read: 0
105         write: 1
106       - type: access
107         index: '{ S_3[i] -> [(i)] }'
108         reference: __pet_ref_4
109         read: 1
110         write: 0
111 - line: 16
112   domain: '{ S_5[i] : i >= 0 and i <= 9 }'
113   body:
114     type: expression
115     expr:
116       type: op
117       operation: kill
118       arguments:
119       - type: access
120         killed: '{ S_5[i] -> a_0[] }'
121         index: '{ S_5[i] -> a_0[] }'
122         reference: __pet_ref_5
123         kill: 1
124 - line: 16
125   domain: '{ S_6[i] : i >= 0 and i <= 9 }'
126   body:
127     type: expression
128     expr:
129       type: op
130       operation: =
131       arguments:
132       - type: access
133         index: '{ S_6[i] -> a_0[] }'
134         reference: __pet_ref_6
135         read: 0
136         write: 1
137       - type: int
138         value: 0
139 - line: 18
140   domain: '{ S_8[i, i''] : i >= 0 and i <= 9 and i'' >= 0 and i'' <= 19 }'
141   body:
142     type: expression
143     expr:
144       type: call
145       name: g
146       arguments:
147       - type: op
148         operation: '&'
149         arguments:
150         - type: access
151           may_write: '{ S_8[i, i''] -> s_a[s[i, i''] -> a[o2, o3]] : o3 <= 29 and
152             o3 >= 20 and o2 <= 19 and o2 >= 10; S_8[i, i''] -> s_b[s[i, i''] -> b[5]]
153             }'
154           must_write: '{ S_8[i, i''] -> s_a[s[i, i''] -> a[o2, o3]] : o3 <= 29 and
155             o3 >= 20 and o2 <= 19 and o2 >= 10; S_8[i, i''] -> s_b[s[i, i''] -> b[5]]
156             }'
157           index: '{ S_8[i, i''] -> s[(i), (i'')] }'
158           reference: __pet_ref_7
159           read: 0
160           write: 1
161 - line: 16
162   domain: '{ S_7[i] : i >= 0 and i <= 9 }'
163   body:
164     type: expression
165     expr:
166       type: op
167       operation: kill
168       arguments:
169       - type: access
170         killed: '{ S_7[i] -> a_0[] }'
171         index: '{ S_7[i] -> a_0[] }'
172         reference: __pet_ref_8
173         kill: 1
174 - line: -1
175   domain: '{ S_4[i] : i >= 0 and i <= 9 }'
176   body:
177     type: expression
178     expr:
179       type: op
180       operation: kill
181       arguments:
182       - type: access
183         killed: '{ S_4[i] -> __pet_arg_0[] }'
184         index: '{ S_4[i] -> __pet_arg_0[] }'
185         reference: __pet_ref_9
186         kill: 1