pet_scop: keep track of schedule tree
[pet.git] / tests / break7.scop
blob0ac5cbb4d39c2344074bfc6369fe8f1a0d5aebcf
1 start: 40
2 end: 146
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_0[]; S_2[0]; S_1[0] }", child: { sequence: [ { filter: "{
6   S_0[] }" }, { filter: "{ S_2[t]; S_1[t] }", child: { schedule: "L_0[{ S_1[t] ->
7   [(t)]; S_2[t] -> [(t)] }]", child: { sequence: [ { filter: "{ S_1[t] }" }, { filter:
8   "{ S_2[t] }" } ] } } } ] } }'
9 arrays:
10 - context: '{  :  }'
11   extent: '{ __pet_test_0[0] }'
12   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
13   element_type: int
14   element_size: 4
15   uniquely_defined: 1
16 - context: '{  :  }'
17   extent: '{ a[i0] : i0 >= 0 and i0 <= 99 }'
18   element_type: int
19   element_size: 4
20 - context: '{  :  }'
21   extent: '{ i[] }'
22   element_type: int
23   element_size: 4
24 statements:
25 - line: 8
26   domain: '{ S_0[] }'
27   schedule: '{ S_0[] -> [0, 0] }'
28   body:
29     type: expression
30     expr:
31       type: op
32       operation: =
33       arguments:
34       - type: access
35         index: '{ S_0[] -> i[] }'
36         reference: __pet_ref_0
37         read: 0
38         write: 1
39       - type: call
40         name: f
41 - line: 8
42   domain: '{ [S_1[0] -> [1]] }'
43   schedule: '{ S_1[t] -> [0, 1, t, 0] }'
44   body:
45     type: expression
46     expr:
47       type: op
48       operation: =
49       arguments:
50       - type: access
51         index: '{ S_1[t] -> __pet_test_0[(0)] }'
52         reference: __pet_ref_2
53         read: 0
54         write: 1
55       - type: op
56         operation: <
57         arguments:
58         - type: access
59           index: '{ S_1[t] -> i[] }'
60           reference: __pet_ref_3
61           read: 1
62           write: 0
63         - type: int
64           value: 100
65   arguments:
66   - type: access
67     index: '{ S_1[t] -> __pet_test_0[(0 : 1 = 0)] }'
68     reference: __pet_ref_1
69     read: 1
70     write: 0
71 - line: 9
72   domain: '{ [S_2[0] -> [1]] }'
73   schedule: '{ S_2[t] -> [0, 1, t, 1, 0] }'
74   body:
75     type: expression
76     expr:
77       type: op
78       operation: =
79       arguments:
80       - type: access
81         index: '{ [S_2[t] -> [i1]] -> a[((i1) : i1 >= 0)] }'
82         reference: __pet_ref_6
83         read: 0
84         write: 1
85         arguments:
86         - type: access
87           index: '{ S_2[t] -> i[] }'
88           reference: __pet_ref_5
89           read: 1
90           write: 0
91       - type: int
92         value: 0
93   arguments:
94   - type: access
95     index: '{ S_2[t] -> __pet_test_0[(0)] }'
96     reference: __pet_ref_4
97     read: 1
98     write: 0
99 - line: 12
100   domain: '{ [S_3[t] -> [__pet_test_0]] : 1 = 0 }'
101   schedule: '{ S_3[t] -> [0, 1, t, 1, 2] }'
102   body:
103     type: expression
104     expr:
105       type: op
106       operation: =
107       arguments:
108       - type: access
109         index: '{ [S_3[t] -> [i1]] -> a[(0 : 1 = 0)] }'
110         reference: __pet_ref_9
111         read: 0
112         write: 1
113         arguments:
114         - type: access
115           index: '{ S_3[t] -> i[] }'
116           reference: __pet_ref_8
117           read: 1
118           write: 0
119       - type: int
120         value: 1
121   arguments:
122   - type: access
123     index: '{ S_3[t] -> __pet_test_0[(0 : 1 = 0)] }'
124     reference: __pet_ref_7
125     read: 1
126     write: 0
127 - line: 8
128   domain: '{ [S_4[t] -> [__pet_test_0]] : 1 = 0 }'
129   schedule: '{ S_4[t] -> [0, 1, t, 2] }'
130   body:
131     type: expression
132     expr:
133       type: op
134       operation: +=
135       arguments:
136       - type: access
137         index: '{ S_4[t] -> i[] }'
138         reference: __pet_ref_11
139         read: 0
140         write: 1
141       - type: int
142         value: 1
143   arguments:
144   - type: access
145     index: '{ S_4[t] -> __pet_test_0[(0 : 1 = 0)] }'
146     reference: __pet_ref_10
147     read: 1
148     write: 0
149 implications:
150 - satisfied: 1
151   extension: '{ __pet_test_0[t] -> __pet_test_0[0] : t >= 0 }'