try and include initial declarations in outer block when autodetecting
[pet.git] / tests / propagate.scop
blob79d7e3318ac5edc9d86a616d4e7ece57211b3817
1 start: 66
2 end: 204
3 indent: "\t"
4 context: '[N] -> {  : N <= 2147483647 and N >= 0 }'
5 schedule: '{ domain: "[N] -> { S_1[i, j] : i >= 0 and j >= i and j <= -1 + N; S_0[i,
6   j] : i >= 0 and j >= i and j <= -1 + N }", child: { schedule: "[N] -> L_0[{ S_0[i,
7   j] -> [(i)]; S_1[i, j] -> [(i)] }]", child: { schedule: "[N] -> L_1[{ S_0[i, j]
8   -> [(j)]; S_1[i, j] -> [(j)] }]", child: { sequence: [ { filter: "[N] -> { S_0[i,
9   j] }" }, { filter: "[N] -> { S_1[i, j] }" } ] } } } }'
10 arrays:
11 - context: '[N] -> {  : N >= 0 }'
12   extent: '[N] -> { a[i0, i1] : i1 >= 0 and i1 <= -1 + N and i0 >= 0 }'
13   element_type: int
14   element_size: 4
15 - context: '{  :  }'
16   extent: '[N] -> { ind[] }'
17   element_type: int
18   element_size: 4
19 statements:
20 - line: 9
21   domain: '[N] -> { S_0[i, j] : j >= i and j <= -1 + N and i >= 0 }'
22   body:
23     type: expression
24     expr:
25       type: op
26       operation: =
27       arguments:
28       - type: access
29         index: '[N] -> { S_0[i, j] -> ind[] }'
30         reference: __pet_ref_0
31         read: 0
32         write: 1
33       - type: op
34         operation: '?:'
35         arguments:
36         - type: op
37           operation: '>'
38           arguments:
39           - type: access
40             index: '[N] -> { S_0[i, j] -> [(i)] }'
41             reference: __pet_ref_1
42             read: 1
43             write: 0
44           - type: int
45             value: 0
46         - type: op
47           operation: '-'
48           arguments:
49           - type: access
50             index: '[N] -> { S_0[i, j] -> [(i)] }'
51             reference: __pet_ref_2
52             read: 1
53             write: 0
54           - type: int
55             value: 1
56         - type: access
57           index: '[N] -> { S_0[i, j] -> [(i)] }'
58           reference: __pet_ref_3
59           read: 1
60           write: 0
61 - line: 10
62   domain: '[N] -> { S_1[i, j] : j >= i and j <= -1 + N and i >= 0 }'
63   body:
64     type: expression
65     expr:
66       type: op
67       operation: =
68       arguments:
69       - type: access
70         index: '[N] -> { S_1[i, j] -> a[(i), (j)] }'
71         reference: __pet_ref_4
72         read: 0
73         write: 1
74       - type: access
75         index: '[N] -> { S_1[i, j] -> a[((-1 + i) : i >= 1; (0) : i = 0), (0)] }'
76         reference: __pet_ref_5
77         read: 1
78         write: 0