pet_scop: keep track of schedule tree
[pet.git] / tests / call3.scop
blob82ca5cb847cd2818ca0bb84deb306fd3eef490aa
1 start: 120
2 end: 225
3 indent: "\t"
4 context: '[n] -> {  : exists (e0 = floor((n)/4): 4e0 = n and n >= 0 and n <= 2147483647)
5   }'
6 schedule: '{ domain: "[n] -> { S_0[]; S_1[i] : exists (e0 = floor((i)/4): 4e0 = i
7   and i >= 0 and i <= -1 + n) }", child: { sequence: [ { filter: "[n] -> { S_0[] }"
8   }, { filter: "[n] -> { S_1[i] }", child: { schedule: "[n] -> L_0[{ S_1[i] -> [(i)]
9   }]" } } ] } }'
10 arrays:
11 - context: '[n] -> {  : n >= 0 }'
12   extent: '[n] -> { A[i0] : i0 >= 0 and i0 <= -1 + n }'
13   element_type: int
14   element_size: 4
15 statements:
16 - line: 10
17   domain: '[n] -> { S_0[] }'
18   schedule: '{ S_0[] -> [0] }'
19   body:
20     type: expression
21     expr:
22       type: op
23       operation: assume
24       arguments:
25       - type: access
26         index: '[n] -> { S_0[] -> [(1)] }'
27         reference: __pet_ref_0
28         read: 1
29         write: 0
30 - line: 12
31   domain: '[n] -> { S_1[i] : exists (e0 = floor((i)/4): 4e0 = i and i >= 0 and i <=
32     -4 + n) }'
33   schedule: '[n] -> { S_1[i] -> [1, i] }'
34   body:
35     type: expression
36     expr:
37       type: call
38       name: foo
39       arguments:
40       - type: op
41         operation: '&'
42         arguments:
43         - type: access
44           may_read: '[n] -> { S_1[i] -> A[o0] : o0 >= i and o0 <= 3 + i }'
45           may_write: '[n] -> { S_1[i] -> A[o0] : o0 >= i and o0 <= 3 + i }'
46           must_write: '[n] -> { S_1[i] -> A[o0] : o0 >= i and o0 <= 3 + i }'
47           index: '[n] -> { S_1[i] -> A[(i)] }'
48           reference: __pet_ref_1
49           read: 1
50           write: 1