break up access relations into may_read/may_write/must_write
[pet.git] / tests / encapsulate / for_while.scop
bloba6af3f62db9417514570dc16072084505829f40a
1 start: 83
2 end: 231
3 indent: "\t"
4 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
5 arrays:
6 - context: '{  :  }'
7   extent: '[n] -> { x2[] }'
8   element_type: int
9   element_size: 4
10   declared: 1
11 - context: '{  :  }'
12   extent: '[n] -> { s[] }'
13   element_type: int
14   element_size: 4
15 statements:
16 - line: 12
17   domain: '[n] -> { S1[x1] : x1 <= -1 + n and x1 >= 0 }'
18   schedule: '[n] -> { S1[x1] -> [0, x1, 0] }'
19   body:
20     type: expression
21     expr:
22       type: op
23       operation: =
24       arguments:
25       - type: access
26         index: '[n] -> { S1[x1] -> 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_4[x1] : x1 <= -1 + n and x1 >= 0 }'
34   schedule: '[n] -> { S_4[x1] -> [0, x1, 1, 0] }'
35   body:
36     type: expression
37     expr:
38       type: op
39       operation: kill
40       arguments:
41       - type: access
42         killed: '[n] -> { S_4[x1] -> x2[] }'
43         index: '[n] -> { S_4[x1] -> x2[] }'
44         reference: __pet_ref_1
45         kill: 1
46 - line: 13
47   domain: '[n] -> { S_3[x1] : x1 <= -1 + n and x1 >= 0 }'
48   schedule: '[n] -> { S_3[x1] -> [0, x1, 1, 1] }'
49   body:
50     type: for
51     declared: 1
52     variable:
53       type: access
54       index: '[n] -> { S_3[x1] -> x2[] }'
55       reference: __pet_ref_2
56       read: 0
57       write: 1
58     initialization:
59       type: int
60       value: 0
61     condition:
62       type: call
63       name: P
64       arguments:
65       - type: access
66         index: '[n] -> { S_3[x1] -> [(x1)] }'
67         reference: __pet_ref_3
68         read: 1
69         write: 0
70       - type: access
71         index: '[n] -> { S_3[x1] -> x2[] }'
72         reference: __pet_ref_4
73         read: 1
74         write: 0
75     increment:
76       type: int
77       value: 1
78     body:
79       type: block
80       block: 1
81       children:
82       - type: expression
83         expr:
84           type: op
85           operation: =
86           arguments:
87           - type: access
88             index: '[n] -> { S_3[x1] -> s[] }'
89             reference: __pet_ref_5
90             read: 0
91             write: 1
92           - type: call
93             name: g
94             arguments:
95             - type: access
96               index: '[n] -> { S_3[x1] -> s[] }'
97               reference: __pet_ref_6
98               read: 1
99               write: 0
100 - line: 13
101   domain: '[n] -> { S_5[x1] : x1 <= -1 + n and x1 >= 0 }'
102   schedule: '[n] -> { S_5[x1] -> [0, x1, 1, 2] }'
103   body:
104     type: expression
105     expr:
106       type: op
107       operation: kill
108       arguments:
109       - type: access
110         killed: '[n] -> { S_5[x1] -> x2[] }'
111         index: '[n] -> { S_5[x1] -> x2[] }'
112         reference: __pet_ref_7
113         kill: 1
114 - line: 16
115   domain: '[n] -> { R[x1] : x1 <= -1 + n and x1 >= 0 }'
116   schedule: '[n] -> { R[x1] -> [0, x1, 2] }'
117   body:
118     type: expression
119     expr:
120       type: call
121       name: h
122       arguments:
123       - type: access
124         index: '[n] -> { R[x1] -> s[] }'
125         reference: __pet_ref_8
126         read: 1
127         write: 0