pet_scop: keep track of schedule tree
[pet.git] / tests / independent3.scop
blob693b48b3fde3525b6c53b9d3250de66564150675
1 start: 44
2 end: 209
3 indent: "\t"
4 context: '[n] -> {  : n >= 0 and n <= 2147483647 }'
5 schedule: '{ domain: "[n] -> { S_2[i, j] : i >= 0 and i <= -1 + n and j >= 0 and j
6   <= -1 + n; S_0[i, j] : i >= 0 and i <= -1 + n and j >= 0 and j <= -1 + n; S_3[i,
7   j] : i >= 0 and i <= -1 + n and j >= 0 and j <= -1 + n; S_1[i, j] : i >= 0 and i
8   <= -1 + n and j >= 0 and j <= -1 + n }", child: { schedule: "[n] -> L_0[{ S_3[i,
9   j] -> [(i)]; S_1[i, j] -> [(i)]; S_2[i, j] -> [(i)]; S_0[i, j] -> [(i)] }]", child:
10   { schedule: "[n] -> L_1[{ S_3[i, j] -> [(j)]; S_1[i, j] -> [(j)]; S_2[i, j] -> [(j)];
11   S_0[i, j] -> [(j)] }]", child: { sequence: [ { filter: "[n] -> { S_0[i, j] }" },
12   { filter: "[n] -> { S_1[i, j] }" }, { filter: "[n] -> { S_3[i, j] }" }, { filter:
13   "[n] -> { S_2[i, j] }" } ] } } } }'
14 arrays:
15 - context: '{  :  }'
16   extent: '[n] -> { t[] }'
17   element_type: float
18   element_size: 4
19   declared: 1
20 - context: '[n] -> {  : n >= 0 }'
21   extent: '[n] -> { A[i0, i1] : i1 >= 0 and i1 <= -1 + n and i0 >= 0 }'
22   element_type: int
23   element_size: 4
24 - context: '[n] -> {  : n >= 0 }'
25   extent: '[n] -> { B[i0, i1] : i1 >= 0 and i1 <= -1 + n and i0 >= 0 }'
26   element_type: int
27   element_size: 4
28 statements:
29 - line: 7
30   domain: '[n] -> { S_0[i, j] : j >= 0 and j <= -1 + n and i >= 0 and i <= -1 + n
31     }'
32   schedule: '[n] -> { S_0[i, j] -> [0, i, j, 0, 0] }'
33   body:
34     type: expression
35     expr:
36       type: op
37       operation: kill
38       arguments:
39       - type: access
40         killed: '[n] -> { S_0[i, j] -> t[] }'
41         index: '[n] -> { S_0[i, j] -> t[] }'
42         reference: __pet_ref_0
43         kill: 1
44 - line: 7
45   domain: '[n] -> { S_1[i, j] : j >= 0 and j <= -1 + n and i >= 0 and i <= -1 + n
46     }'
47   schedule: '[n] -> { S_1[i, j] -> [0, i, j, 0, 1] }'
48   body:
49     type: expression
50     expr:
51       type: op
52       operation: =
53       arguments:
54       - type: access
55         index: '[n] -> { S_1[i, j] -> t[] }'
56         reference: __pet_ref_1
57         read: 0
58         write: 1
59       - type: op
60         operation: +
61         arguments:
62         - type: access
63           index: '[n] -> { S_1[i, j] -> [(i)] }'
64           reference: __pet_ref_2
65           read: 1
66           write: 0
67         - type: access
68           index: '[n] -> { S_1[i, j] -> [(j)] }'
69           reference: __pet_ref_3
70           read: 1
71           write: 0
72 - line: 8
73   domain: '[n] -> { S_3[i, j] : j >= 0 and j <= -1 + n and i >= 0 and i <= -1 + n
74     }'
75   schedule: '[n] -> { S_3[i, j] -> [0, i, j, 1] }'
76   body:
77     type: expression
78     expr:
79       type: op
80       operation: =
81       arguments:
82       - type: access
83         index: '[n] -> { [S_3[i, j] -> [i2]] -> B[(i), ((i2) : i2 >= 0)] }'
84         reference: __pet_ref_5
85         read: 0
86         write: 1
87         arguments:
88         - type: access
89           index: '[n] -> { S_3[i, j] -> A[(i), (j)] }'
90           reference: __pet_ref_4
91           read: 1
92           write: 0
93       - type: access
94         index: '[n] -> { S_3[i, j] -> t[] }'
95         reference: __pet_ref_6
96         read: 1
97         write: 0
98 - line: 7
99   domain: '[n] -> { S_2[i, j] : j >= 0 and j <= -1 + n and i >= 0 and i <= -1 + n
100     }'
101   schedule: '[n] -> { S_2[i, j] -> [0, i, j, 2] }'
102   body:
103     type: expression
104     expr:
105       type: op
106       operation: kill
107       arguments:
108       - type: access
109         killed: '[n] -> { S_2[i, j] -> t[] }'
110         index: '[n] -> { S_2[i, j] -> t[] }'
111         reference: __pet_ref_7
112         kill: 1
113 independences:
114 - filter: '[n] -> { S_2[i, j] -> S_2[i, j''] : j'' >= 1 + j; S_0[i, j] -> S_1[i, j'']
115     : j'' >= 1 + j; S_2[i, j] -> S_1[i, j''] : j'' >= 1 + j; S_3[i, j] -> S_1[i, j'']
116     : j'' >= 1 + j; S_0[i, j] -> S_2[i, j''] : j'' >= 1 + j; S_3[i, j] -> S_2[i, j'']
117     : j'' >= 1 + j; S_1[i, j] -> S_0[i, j''] : j'' >= 1 + j; S_2[i, j] -> S_0[i, j'']
118     : j'' >= 1 + j; S_0[i, j] -> S_0[i, j''] : j'' >= 1 + j; S_0[i, j] -> S_3[i, j'']
119     : j'' >= 1 + j; S_3[i, j] -> S_0[i, j''] : j'' >= 1 + j; S_1[i, j] -> S_2[i, j'']
120     : j'' >= 1 + j; S_3[i, j] -> S_3[i, j''] : j'' >= 1 + j; S_1[i, j] -> S_3[i, j'']
121     : j'' >= 1 + j; S_1[i, j] -> S_1[i, j''] : j'' >= 1 + j; S_2[i, j] -> S_3[i, j'']
122     : j'' >= 1 + j }'
123   local: '{ t[] }'