support inlining of outermost call expressions
[pet.git] / tests / inline8.scop
blob927cf89fec6f11e99c84804b081ac4f145c30dcf
1 start: 175
2 end: 245
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_3[i, i''] : i >= 0 and i <= 9 and i'' >= 0 and i'' <= 19;
6   S_2[i] : i >= 0 and i <= 9; S_0[i] : i >= 0 and i <= 9; S_1[i] : i >= 0 and i <=
7   9 }", child: { schedule: "L_0[{ S_3[i, i''] -> [(i)]; S_2[i] -> [(i)]; S_1[i] ->
8   [(i)]; S_0[i] -> [(i)] }]", child: { sequence: [ { filter: "{ S_0[i] }" }, { filter:
9   "{ S_1[i] }" }, { filter: "{ S_3[i, i''] }", child: { schedule: "L_1[{ S_3[i, i'']
10   -> [(i'')] }]" } }, { filter: "{ S_2[i] }" } ] } } }'
11 types:
12 - name: s
13   definition: "struct s {\n    int a[30][40];\n    int b[50];\n}"
14 arrays:
15 - context: '{  :  }'
16   extent: '{ __pet_arg_0[] }'
17   element_type: int
18   element_size: 4
19   declared: 1
20 - context: '{  :  }'
21   extent: '{ s[i0, i1] : i0 >= 0 and i1 >= 0 and i0 <= 9 and i1 <= 19 }'
22   element_type: struct s
23   element_size: 5000
24   element_is_record: 1
25 - context: '{  :  }'
26   extent: '{ s_a[s[i0, i1] -> a[i2, i3]] : i0 >= 0 and i1 >= 0 and i0 <= 9 and i1
27     <= 19 and i2 >= 0 and i3 >= 0 and i2 <= 29 and i3 <= 39 }'
28   element_type: int
29   element_size: 4
30 - context: '{  :  }'
31   extent: '{ s_b[s[i0, i1] -> b[i2]] : i0 >= 0 and i1 >= 0 and i0 <= 9 and i1 <= 19
32     and i2 >= 0 and i2 <= 49 }'
33   element_type: int
34   element_size: 4
35 statements:
36 - line: -1
37   domain: '{ S_0[i] : i >= 0 and i <= 9 }'
38   body:
39     type: expression
40     expr:
41       type: op
42       operation: kill
43       arguments:
44       - type: access
45         killed: '{ S_0[i] -> __pet_arg_0[] }'
46         index: '{ S_0[i] -> __pet_arg_0[] }'
47         reference: __pet_ref_0
48         kill: 1
49 - line: -1
50   domain: '{ S_1[i] : i >= 0 and i <= 9 }'
51   body:
52     type: expression
53     expr:
54       type: op
55       operation: =
56       arguments:
57       - type: access
58         index: '{ S_1[i] -> __pet_arg_0[] }'
59         reference: __pet_ref_1
60         read: 0
61         write: 1
62       - type: access
63         index: '{ S_1[i] -> [(i)] }'
64         reference: __pet_ref_2
65         read: 1
66         write: 0
67 - line: 11
68   domain: '{ S_3[i, i''] : i >= 0 and i <= 9 and i'' >= 0 and i'' <= 19 }'
69   body:
70     type: expression
71     expr:
72       type: call
73       name: g
74       arguments:
75       - type: op
76         operation: '&'
77         arguments:
78         - type: access
79           may_read: '{ S_3[i, i''] -> s[i, i''] }'
80           may_write: '{ S_3[i, i''] -> s[i, i''] }'
81           must_write: '{  }'
82           index: '{ S_3[i, i''] -> s[(i), (i'')] }'
83           reference: __pet_ref_3
84           read: 1
85           write: 1
86 - line: -1
87   domain: '{ S_2[i] : i >= 0 and i <= 9 }'
88   body:
89     type: expression
90     expr:
91       type: op
92       operation: kill
93       arguments:
94       - type: access
95         killed: '{ S_2[i] -> __pet_arg_0[] }'
96         index: '{ S_2[i] -> __pet_arg_0[] }'
97         reference: __pet_ref_4
98         kill: 1