pet_scop: keep track of schedule tree
[pet.git] / tests / struct4.scop
blobf91a62c2db20e398a79d5da2d6bf48921aff2948
1 start: 75
2 end: 189
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_0[i, j] : i >= 0 and i <= 9 and j >= 0 and j <= 9 }", child:
6   { schedule: "L_0[{ S_0[i, j] -> [(i)] }]", child: { schedule: "L_1[{ S_0[i, j] ->
7   [(j)] }]" } } }'
8 types:
9 - name: s
10   definition: "struct s {\n    struct {\n        int a[10];\n    } f[10];\n}"
11 arrays:
12 - context: '{  :  }'
13   extent: '{ s[] }'
14   element_type: struct s
15   element_size: 400
16   element_is_record: 1
17 - context: '{  :  }'
18   extent: '{ s_f[s[] -> f[i0]] : i0 >= 0 and i0 <= 9 }'
19   element_type: <subfield>
20   element_size: 40
21   element_is_record: 1
22 - context: '{  :  }'
23   extent: '{ s_f_a[s_f[s[] -> f[i0]] -> a[i1]] : i0 >= 0 and i0 <= 9 and i1 >= 0 and
24     i1 <= 9 }'
25   element_type: int
26   element_size: 4
27 statements:
28 - line: 14
29   domain: '{ S_0[i, j] : i >= 0 and i <= 9 and j >= 0 and j <= 9 }'
30   schedule: '{ S_0[i, j] -> [0, i, j] }'
31   body:
32     type: expression
33     expr:
34       type: op
35       operation: =
36       arguments:
37       - type: access
38         index: '{ S_0[i, j] -> s_f_a[s_f[s[] -> f[(i)]] -> a[(j)]] }'
39         reference: __pet_ref_0
40         read: 0
41         write: 1
42       - type: op
43         operation: '*'
44         arguments:
45         - type: access
46           index: '{ S_0[i, j] -> [(i)] }'
47           reference: __pet_ref_1
48           read: 1
49           write: 0
50         - type: access
51           index: '{ S_0[i, j] -> [(j)] }'
52           reference: __pet_ref_2
53           read: 1
54           write: 0