pn2adg.cc: edge_name: allocate enough space for edge name
[ppn.git] / tests / inputs / multi_reuse_pn_adg.yaml
blob5832f1d7ce2a131df76961ae0a8ea7976f80c752
1 name: multi_reuse
2 context: '{  :  }'
3 iterator_map: '{ [c0, c1] -> [c0] }'
4 iterators: [c0]
5 all_iterators: [c0, c1]
6 nodes:
7 - name: ND_0
8   function:
9     name: 
10     in:
11     - {var: {access: '{ ND_0[i0] -> in_0ND_0[] }', type: int}, type: value}
12     out:
13     - {var: {access: '{ ND_0[i0] -> out_1ND_0[] }', type: int}, type: return}
14     domain:
15       bounds: '{ ND_0[0] }'
16   domain:
17     bounds: '{ ND_0[0] }'
18   schedule: '{ ND_0[0] -> [0, 0] }'
19   output_ports:
20   - name: ND_0OP_ED_0_0_V_1
21     node: ND_0
22     edge: ED_0
23     vars:
24     - {access: '{ ND_0[i0] -> out_1ND_0[] }', type: int}
25     domain:
26       bounds: '{ ND_0[0] }'
27   expressions:
28   - {name: in_0ND_0, expr: '{ ND_0[c0] -> [(0)] : c0 = 0 }'}
29 - name: ND_1
30   function:
31     name: t
32     out:
33     - {var: {access: '{ ND_1[i0] -> out_0ND_1[] }', type: int}, type: return}
34     domain:
35       bounds: '{ ND_1[i0] : i0 >= 0 and i0 <= 9 }'
36   domain:
37     bounds: '{ ND_1[i0] : i0 >= 0 and i0 <= 9 }'
38   schedule: '{ ND_1[i0] -> [i0, 0] : i0 >= 0 and i0 <= 9 }'
39   output_ports:
40   - name: ND_1OP_ED_2_0_V_0
41     node: ND_1
42     edge: ED_2
43     vars:
44     - {access: '{ ND_1[i0] -> out_0ND_1[] }', type: int}
45     domain:
46       bounds: '{ ND_1[i0] : i0 >= 0 and i0 <= 9 }'
47 - name: ND_2
48   function:
49     name: 
50     in:
51     - {var: {access: '{ [ND_2[i0] -> [i1]] -> in_1ND_2[] }', type: int}, type: value}
52     out:
53     - {var: {access: '{ [ND_2[i0] -> [i1]] -> out_2ND_2[] }', type: int}, type: return}
54     ctrl:
55     - {name: dc0_ND_2_b, expr: '{ ND_2[c0] -> [(1)] }'}
56     - {name: dc0_ND_2_c0, expr: '{ ND_2[c0] -> [(c0)] }'}
57     domain:
58       bounds: '{ [ND_2[i0] -> [1]] : i0 >= 0 and i0 <= 9 }'
59       filters:
60       - {access: '{ [ND_2[i0] -> [i1]] -> in_0ND_2[] }', type: int}
61   domain:
62     bounds: '{ ND_2[i0] : i0 >= 0 and i0 <= 9 }'
63   schedule: '{ ND_2[i0] -> [i0, 1] : i0 >= 0 and i0 <= 9 }'
64   input_ports:
65   - name: ND_2IP_ED_2_0_V_0
66     node: ND_2
67     edge: ED_2
68     vars:
69     - {access: '{ [ND_2[i0] -> local[]] -> in_0ND_2[] }', type: int}
70     domain:
71       bounds: '{ [ND_2[i0] -> local[]] : i0 >= 0 and i0 <= 9 }'
72   - name: ND_2IP_CED_4_0_V_2
73     node: ND_2
74     edge: CED_4
75     vars:
76     - {access: '{ [ND_2[i0] -> local[]] -> dc0_ND_2_b[] }', type: int}
77     - {access: '{ [ND_2[i0] -> local[]] -> dc0_ND_2_c0[] }', type: int}
78     domain:
79       bounds: '{ [ND_2[i0] -> local[]] : i0 >= 1 and i0 <= 9 }'
80   output_ports:
81   - name: ND_2OP_ED_1_0_V_2
82     node: ND_2
83     edge: ED_1
84     vars:
85     - {access: '{ [ND_2[i0] -> [i1, i2]] -> out_2ND_2[] }', type: int}
86     domain:
87       bounds: '{ [ND_2[i0] -> [1, i0]] : i0 >= 0 and i0 <= 9 }'
88       filters:
89       - {access: '[dc0_ND_2_b, dc0_ND_2_c0] -> { ND_2[i0] -> dc0_ND_2_b[] }'}
90       - {access: '[dc0_ND_2_b, dc0_ND_2_c0] -> { ND_2[i0] -> dc0_ND_2_c0[] }'}
91   - name: ND_2OP_CED_3_0_V_2
92     node: ND_2
93     edge: CED_3
94     vars:
95     - {access: '{ ND_2[i0] -> dc0_ND_2_b[] }', type: int}
96     - {access: '{ ND_2[i0] -> dc0_ND_2_c0[] }', type: int}
97     domain:
98       bounds: '{ ND_2[i0] : i0 >= 0 and i0 <= 9 }'
99   - name: ND_2OP_CED_4_0_V_2
100     node: ND_2
101     edge: CED_4
102     vars:
103     - {access: '{ ND_2[i0] -> dc0_ND_2_b[] }', type: int}
104     - {access: '{ ND_2[i0] -> dc0_ND_2_c0[] }', type: int}
105     domain:
106       bounds: '{ ND_2[i0] : i0 >= 0 and i0 <= 8 }'
107   expressions:
108   - {name: in_1ND_2, expr: '{ ND_2[c0] -> [(c0)] }'}
109 - name: ND_3
110   function:
111     name: f
112     in:
113     - {var: {access: '{ ND_3[i0] -> in_0ND_3[] }', type: int}, type: value}
114     domain:
115       bounds: '{ ND_3[i0] : i0 >= 0 and i0 <= 9 }'
116   domain:
117     bounds: '{ ND_3[i0] : i0 >= 0 and i0 <= 9 }'
118   schedule: '{ ND_3[i0] -> [i0, 2] : i0 >= 0 and i0 <= 9 }'
119   input_ports:
120   - name: ND_3IP_ED_0_0_V_1
121     node: ND_3
122     edge: ED_0
123     vars:
124     - {access: '{ [ND_3[i0] -> local[]] -> in_1ND_3[] }', type: int}
125     domain:
126       bounds: '{ [ND_3[0] -> local[]] }'
127   - name: ND_3IP_CED_3_0_V_0
128     node: ND_3
129     edge: CED_3
130     vars:
131     - {access: '{ [ND_3[i0] -> local[]] -> dc0_ND_3_b[] }', type: int}
132     - {access: '{ [ND_3[i0] -> local[]] -> dc0_ND_3_c0[] }', type: int}
133     domain:
134       bounds: '{ [ND_3[i0] -> local[]] : i0 >= 0 and i0 <= 9 }'
135   - name: ND_3IP_ED_5_0_V_2
136     node: ND_3
137     edge: ED_5
138     vars:
139     - {access: '{ [ND_3[i0] -> local[]] -> in_2ND_3[] }', type: int}
140     domain:
141       bounds: '{ [ND_3[i0] -> local[]] : i0 <= 9 and i0 >= 1 }'
142   - name: ND_3IP_ED_6_0_V_3
143     node: ND_3
144     edge: ED_6
145     vars:
146     - {access: '{ [ND_3[i0] -> local[]] -> in_3ND_3[] }', type: int}
147     domain:
148       bounds: '{ [ND_3[i0] -> local[]] : i0 <= 9 and i0 >= 1 }'
149   - name: ND_3IP_ED_1_0_V_0
150     node: ND_3
151     edge: ED_1
152     vars:
153     - {access: '{ [[ND_3[i0] -> [i1, i2]] -> local[]] -> in_0ND_3[] }', type: int}
154     domain:
155       bounds: '{ [[ND_3[i0] -> [1, i0]] -> local[]] : i0 >= 0 and i0 <= 9 }'
156       filters:
157       - {access: '[dc0_ND_3_b, dc0_ND_3_c0] -> { ND_3[i0] -> dc0_ND_3_b[] }'}
158       - {access: '[dc0_ND_3_b, dc0_ND_3_c0] -> { ND_3[i0] -> dc0_ND_3_c0[] }'}
159   output_ports:
160   - name: ND_3OP_ED_5_0_V_0
161     node: ND_3
162     edge: ED_5
163     vars:
164     - {access: '{ ND_3[i0] -> in_0ND_3[] }', type: int}
165     domain:
166       bounds: '{ ND_3[i0] : i0 <= 8 and i0 >= 0 }'
167   - name: ND_3OP_ED_6_0_V_0
168     node: ND_3
169     edge: ED_6
170     vars:
171     - {access: '{ ND_3[i0] -> in_0ND_3[] }', type: int}
172     domain:
173       bounds: '{ ND_3[i0] : i0 <= 8 and i0 >= 0 }'
174   gates:
175   - name: ND_3ID_0
176     node: ND_3
177     in: {access: '[dc0_ND_3_b] -> { ND_3[i0] -> in_1ND_3[] }', type: int}
178     out: {access: '[dc0_ND_3_b] -> { ND_3[i0] -> in_0ND_3[] }', type: int}
179     domain:
180       bounds: '{ [ND_3[0] -> [0]] }'
181       filters:
182       - {access: '[dc0_ND_3_b] -> { ND_3[i0] -> dc0_ND_3_b[] }'}
183   - name: ND_3ID_1
184     node: ND_3
185     in: {access: '[dc0_ND_3_b] -> { ND_3[i0] -> in_2ND_3[] }', type: int}
186     out: {access: '[dc0_ND_3_b] -> { ND_3[i0] -> in_0ND_3[] }', type: int}
187     domain:
188       bounds: '{ [ND_3[i0] -> [0]] : i0 <= 9 and i0 >= 1 }'
189       filters:
190       - {access: '[dc0_ND_3_b] -> { ND_3[i0] -> dc0_ND_3_b[] }'}
191   - name: ND_3ID_2
192     node: ND_3
193     in: {access: '[dc0_ND_3_b, dc0_ND_3_c0] -> { ND_3[i0] -> in_3ND_3[] }', type: int}
194     out: {access: '[dc0_ND_3_b, dc0_ND_3_c0] -> { ND_3[i0] -> in_0ND_3[] }', type: int}
195     domain:
196       bounds: '{ [ND_3[i0] -> [1, i2]] : i2 >= 0 and i2 <= -1 + i0 and i0 <= 9 }'
197       filters:
198       - {access: '[dc0_ND_3_b, dc0_ND_3_c0] -> { ND_3[i0] -> dc0_ND_3_b[] }'}
199       - {access: '[dc0_ND_3_b, dc0_ND_3_c0] -> { ND_3[i0] -> dc0_ND_3_c0[] }'}
200 edges:
201 - name: ED_0
202   type: fifo
203   map: '{ lifted[ND_3[i0] -> local[]] -> ND_0[(0)] }'
204   from_node: ND_0
205   from_port: ND_0OP_ED_0_0_V_1
206   to_node: ND_3
207   to_port: ND_3IP_ED_0_0_V_1
208   value_size: 1
209 - name: ED_1
210   type: fifo
211   map: '{ lifted[[ND_3[i0] -> [i1, i2]] -> local[]] -> ND_2[(i0)] }'
212   from_node: ND_2
213   from_port: ND_2OP_ED_1_0_V_2
214   to_node: ND_3
215   to_port: ND_3IP_ED_1_0_V_0
216   value_size: 1
217 - name: ED_2
218   type: fifo
219   map: '{ lifted[ND_2[i0] -> local[]] -> ND_1[(i0)] }'
220   from_node: ND_1
221   from_port: ND_1OP_ED_2_0_V_0
222   to_node: ND_2
223   to_port: ND_2IP_ED_2_0_V_0
224   value_size: 1
225 - name: CED_3
226   type: fifo
227   map: '{ lifted[ND_3[i0] -> local[]] -> ND_2[(i0)] }'
228   from_node: ND_2
229   from_port: ND_2OP_CED_3_0_V_2
230   to_node: ND_3
231   to_port: ND_3IP_CED_3_0_V_0
232   value_size: 1
233 - name: CED_4
234   type: fifo
235   map: '{ lifted[ND_2[i0] -> local[]] -> ND_2[(-1 + i0)] }'
236   from_node: ND_2
237   from_port: ND_2OP_CED_4_0_V_2
238   to_node: ND_2
239   to_port: ND_2IP_CED_4_0_V_2
240   value_size: 1
241 - name: ED_5
242   type: fifo
243   map: '{ lifted[ND_3[i0] -> local[]] -> ND_3[(-1 + i0)] }'
244   from_node: ND_3
245   from_port: ND_3OP_ED_5_0_V_0
246   to_node: ND_3
247   to_port: ND_3IP_ED_5_0_V_2
248   value_size: 1
249 - name: ED_6
250   type: fifo
251   map: '{ lifted[ND_3[i0] -> local[]] -> ND_3[(-1 + i0)] }'
252   from_node: ND_3
253   from_port: ND_3OP_ED_6_0_V_0
254   to_node: ND_3
255   to_port: ND_3IP_ED_6_0_V_3
256   value_size: 1