pet_scop: keep track of schedule tree
[pet.git] / tests / encapsulate / for_while.scop
blobc2875edbe52facc3bdb638d2436c6c7eeeaf4a7e
1 start: 83
2 end: 231
3 indent: "\t"
4 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
5 schedule: '{ domain: "[n] -> { S1[x1] : x1 >= 0 and x1 <= -1 + n; S_4[x1] : x1 >=
6   0 and x1 <= -1 + n; S_3[x1] : x1 >= 0 and x1 <= -1 + n; S_5[x1] : x1 >= 0 and x1
7   <= -1 + n; R[x1] : x1 >= 0 and x1 <= -1 + n }", child: { schedule: "[n] -> L_0[{
8   S1[x1] -> [(x1)]; R[x1] -> [(x1)]; S_3[x1] -> [(x1)]; S_5[x1] -> [(x1)]; S_4[x1]
9   -> [(x1)] }]", child: { sequence: [ { filter: "[n] -> { S1[x1] }" }, { filter: "[n]
10   -> { S_4[x1] }" }, { filter: "[n] -> { S_3[x1] }" }, { filter: "[n] -> { S_5[x1]
11   }" }, { filter: "[n] -> { R[x1] }" } ] } } }'
12 arrays:
13 - context: '{  :  }'
14   extent: '[n] -> { x2[] }'
15   element_type: int
16   element_size: 4
17   declared: 1
18 - context: '{  :  }'
19   extent: '[n] -> { s[] }'
20   element_type: int
21   element_size: 4
22 statements:
23 - line: 12
24   domain: '[n] -> { S1[x1] : x1 >= 0 and x1 <= -1 + n }'
25   schedule: '[n] -> { S1[x1] -> [0, x1, 0] }'
26   body:
27     type: expression
28     expr:
29       type: op
30       operation: =
31       arguments:
32       - type: access
33         index: '[n] -> { S1[x1] -> s[] }'
34         reference: __pet_ref_0
35         read: 0
36         write: 1
37       - type: call
38         name: f
39 - line: 13
40   domain: '[n] -> { S_4[x1] : x1 >= 0 and x1 <= -1 + n }'
41   schedule: '[n] -> { S_4[x1] -> [0, x1, 1, 0] }'
42   body:
43     type: expression
44     expr:
45       type: op
46       operation: kill
47       arguments:
48       - type: access
49         killed: '[n] -> { S_4[x1] -> x2[] }'
50         index: '[n] -> { S_4[x1] -> x2[] }'
51         reference: __pet_ref_1
52         kill: 1
53 - line: 13
54   domain: '[n] -> { S_3[x1] : x1 >= 0 and x1 <= -1 + n }'
55   schedule: '[n] -> { S_3[x1] -> [0, x1, 1, 1] }'
56   body:
57     type: for
58     declared: 1
59     variable:
60       type: access
61       index: '[n] -> { S_3[x1] -> x2[] }'
62       reference: __pet_ref_2
63       read: 0
64       write: 1
65     initialization:
66       type: int
67       value: 0
68     condition:
69       type: call
70       name: P
71       arguments:
72       - type: access
73         index: '[n] -> { S_3[x1] -> [(x1)] }'
74         reference: __pet_ref_3
75         read: 1
76         write: 0
77       - type: access
78         index: '[n] -> { S_3[x1] -> x2[] }'
79         reference: __pet_ref_4
80         read: 1
81         write: 0
82     increment:
83       type: int
84       value: 1
85     body:
86       type: block
87       block: 1
88       children:
89       - type: expression
90         expr:
91           type: op
92           operation: =
93           arguments:
94           - type: access
95             index: '[n] -> { S_3[x1] -> s[] }'
96             reference: __pet_ref_5
97             read: 0
98             write: 1
99           - type: call
100             name: g
101             arguments:
102             - type: access
103               index: '[n] -> { S_3[x1] -> s[] }'
104               reference: __pet_ref_6
105               read: 1
106               write: 0
107 - line: 13
108   domain: '[n] -> { S_5[x1] : x1 >= 0 and x1 <= -1 + n }'
109   schedule: '[n] -> { S_5[x1] -> [0, x1, 1, 2] }'
110   body:
111     type: expression
112     expr:
113       type: op
114       operation: kill
115       arguments:
116       - type: access
117         killed: '[n] -> { S_5[x1] -> x2[] }'
118         index: '[n] -> { S_5[x1] -> x2[] }'
119         reference: __pet_ref_7
120         kill: 1
121 - line: 16
122   domain: '[n] -> { R[x1] : x1 >= 0 and x1 <= -1 + n }'
123   schedule: '[n] -> { R[x1] -> [0, x1, 2] }'
124   body:
125     type: expression
126     expr:
127       type: call
128       name: h
129       arguments:
130       - type: access
131         index: '[n] -> { R[x1] -> s[] }'
132         reference: __pet_ref_8
133         read: 1
134         write: 0