pet_scop: keep track of schedule tree
[pet.git] / tests / call1.scop
blob0f423f6d850597775546fd6d7fd54adf1af9cb45
1 start: 141
2 end: 245
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: access
41         index: '[n] -> { S_1[i] -> [(i)] }'
42         reference: __pet_ref_1
43         read: 1
44         write: 0
45       - type: access
46         may_read: '[n] -> { S_1[i] -> A[o0] : o0 >= i and o0 <= 3 + i }'
47         may_write: '[n] -> { S_1[i] -> A[o0] : o0 >= i and o0 <= 3 + i }'
48         must_write: '[n] -> { S_1[i] -> A[o0] : o0 >= i and o0 <= 3 + i }'
49         index: '[n] -> { S_1[i] -> A[] }'
50         depth: 1
51         reference: __pet_ref_2
52         read: 1
53         write: 1