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