pet_scop: keep track of schedule tree
[pet.git] / tests / encapsulate / while.scop
blob36486e94a04c2abf9ead1e89dc748a1aa5563c2a
1 start: 83
2 end: 210
3 indent: "\t"
4 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
5 schedule: '{ domain: "[n] -> { S1[x] : x >= 0 and x <= -1 + n; S_3[x] : x >= 0 and
6   x <= -1 + n; R[x] : x >= 0 and x <= -1 + n }", child: { schedule: "[n] -> L_0[{
7   S1[x] -> [(x)]; R[x] -> [(x)]; S_3[x] -> [(x)] }]", child: { sequence: [ { filter:
8   "[n] -> { S1[x] }" }, { filter: "[n] -> { S_3[x] }" }, { filter: "[n] -> { R[x]
9   }" } ] } } }'
10 arrays:
11 - context: '{  :  }'
12   extent: '[n] -> { s[] }'
13   element_type: int
14   element_size: 4
15 statements:
16 - line: 12
17   domain: '[n] -> { S1[x] : x >= 0 and x <= -1 + n }'
18   schedule: '[n] -> { S1[x] -> [0, x, 0] }'
19   body:
20     type: expression
21     expr:
22       type: op
23       operation: =
24       arguments:
25       - type: access
26         index: '[n] -> { S1[x] -> s[] }'
27         reference: __pet_ref_0
28         read: 0
29         write: 1
30       - type: call
31         name: f
32 - line: 13
33   domain: '[n] -> { S_3[x] : x >= 0 and x <= -1 + n }'
34   schedule: '[n] -> { S_3[x] -> [0, x, 1] }'
35   body:
36     type: while
37     condition:
38       type: call
39       name: P
40       arguments:
41       - type: access
42         index: '[n] -> { S_3[x] -> [(x)] }'
43         reference: __pet_ref_1
44         read: 1
45         write: 0
46       - type: access
47         index: '[n] -> { S_3[x] -> s[] }'
48         reference: __pet_ref_2
49         read: 1
50         write: 0
51     body:
52       type: block
53       block: 1
54       children:
55       - type: expression
56         expr:
57           type: op
58           operation: =
59           arguments:
60           - type: access
61             index: '[n] -> { S_3[x] -> s[] }'
62             reference: __pet_ref_3
63             read: 0
64             write: 1
65           - type: call
66             name: g
67             arguments:
68             - type: access
69               index: '[n] -> { S_3[x] -> s[] }'
70               reference: __pet_ref_4
71               read: 1
72               write: 0
73 - line: 16
74   domain: '[n] -> { R[x] : x >= 0 and x <= -1 + n }'
75   schedule: '[n] -> { R[x] -> [0, x, 2] }'
76   body:
77     type: expression
78     expr:
79       type: call
80       name: h
81       arguments:
82       - type: access
83         index: '[n] -> { R[x] -> s[] }'
84         reference: __pet_ref_5
85         read: 1
86         write: 0