1 // generated by gen-nodes from `v2cc-chunk.t'.  Do not edit.
2 
3 #ifndef V2CC_H
4 #define V2CC_H
5 
6 #include <freehdl/vaul-chunk.h>
7 #include <string>
8 #include <set>
9 #include <list>
10 #include <vector>
11 #include <map>
12 #include <deque>
13 #include <vector>
14 #include <algorithm>
15 #include "v2cc.h"
16 enum op_type { NO_OP, STD_OP, BASIC_OP, USER_OP };
17 
18 extern tree_chunk_info v2cc_chunk_info;
19 extern tree_ctype_info set_string_ctype_info;
20 extern tree_ctype_info list_string_ctype_info;
21 extern tree_ctype_info list_expr_pair_ref_ctype_info;
22 extern tree_ctype_info vector_string_ctype_info;
23 extern tree_ctype_info vector_string_ref_ctype_info;
24 extern tree_ctype_info vector_bool_ctype_info;
25 extern tree_ctype_info vector_lint_ref_ctype_info;
26 extern tree_ctype_info RegionStack_ctype_info;
27 extern tree_ctype_info RegionStack_ref_ctype_info;
28 extern tree_ctype_info ContextInfo_ctype_info;
29 extern tree_ctype_info ContextInfo_ref_ctype_info;
30 extern tree_ctype_info pContextInfo_ctype_info;
31 extern tree_ctype_info pAccessDescriptor_ctype_info;
32 extern tree_ctype_info lint_ctype_info;
33 extern tree_ctype_info StaticDataType_ctype_info;
34 extern tree_ctype_info string_ctype_info;
35 extern tree_ctype_info string_ref_ctype_info;
36 extern tree_ctype_info set_IIR_SimpleReference_ctype_info;
37 extern tree_ctype_info pIIR_ObjectDeclaration_ctype_info;
38 extern tree_ctype_info RangeDescriptor_vec_ctype_info;
39 extern tree_ctype_info RuntimeCheckFlags_ctype_info;
40 extern tree_ctype_info id_type_ctype_info;
41 extern tree_ctype_info op_type_ctype_info;
42 struct V2CC_InternalObjectDeclaration;
43 typedef V2CC_InternalObjectDeclaration *pV2CC_InternalObjectDeclaration;
44 extern tree_kind_info V2CC_INTERNAL_OBJECT_DECLARATION_kind_info;
45 #define V2CC_INTERNAL_OBJECT_DECLARATION (&V2CC_INTERNAL_OBJECT_DECLARATION_kind_info)
46 struct V2CC_ImplicitSignalDeclaration;
47 typedef V2CC_ImplicitSignalDeclaration *pV2CC_ImplicitSignalDeclaration;
48 extern tree_kind_info V2CC_IMPLICIT_SIGNAL_DECLARATION_kind_info;
49 #define V2CC_IMPLICIT_SIGNAL_DECLARATION (&V2CC_IMPLICIT_SIGNAL_DECLARATION_kind_info)
50 struct V2CC_ImplicitSignalDeclaration_WaitFor;
51 typedef V2CC_ImplicitSignalDeclaration_WaitFor *pV2CC_ImplicitSignalDeclaration_WaitFor;
52 extern tree_kind_info V2CC_IMPLICIT_SIGNAL_DECLARATION_WAIT_FOR_kind_info;
53 #define V2CC_IMPLICIT_SIGNAL_DECLARATION_WAIT_FOR (&V2CC_IMPLICIT_SIGNAL_DECLARATION_WAIT_FOR_kind_info)
54 struct V2CC_ImplicitSignalDeclaration_Transaction;
55 typedef V2CC_ImplicitSignalDeclaration_Transaction *pV2CC_ImplicitSignalDeclaration_Transaction;
56 extern tree_kind_info V2CC_IMPLICIT_SIGNAL_DECLARATION_TRANSACTION_kind_info;
57 #define V2CC_IMPLICIT_SIGNAL_DECLARATION_TRANSACTION (&V2CC_IMPLICIT_SIGNAL_DECLARATION_TRANSACTION_kind_info)
58 struct V2CC_InternalCode;
59 typedef V2CC_InternalCode *pV2CC_InternalCode;
60 extern tree_kind_info V2CC_INTERNAL_CODE_kind_info;
61 #define V2CC_INTERNAL_CODE (&V2CC_INTERNAL_CODE_kind_info)
62 struct V2CC_ImplicitSubtypeDeclaration;
63 typedef V2CC_ImplicitSubtypeDeclaration *pV2CC_ImplicitSubtypeDeclaration;
64 extern tree_kind_info V2CC_IMPLICIT_SUBTYPE_DECLARATION_kind_info;
65 #define V2CC_IMPLICIT_SUBTYPE_DECLARATION (&V2CC_IMPLICIT_SUBTYPE_DECLARATION_kind_info)
66 
67 struct V2CC_InternalObjectDeclaration : IIR_ObjectDeclaration {
68   string cpp_type_string;
69   string cpp_initial_string;
70   int flags;
71 
V2CC_InternalObjectDeclarationV2CC_InternalObjectDeclaration72   V2CC_InternalObjectDeclaration (pIIR_PosInfo pos, pIIR_TextLiteral declarator, pIIR_DeclarativeRegion declarative_region, pIIR_AttributeValueList attributes, int seqno, pIIR_Type subtype, pIIR_Expression initial_value, pIIR_ObjectReference alias_base, string cpp_type_string, string cpp_initial_string, int flags)
73   : IIR_ObjectDeclaration (pos, declarator, declarative_region, attributes, seqno, subtype, initial_value, alias_base),
74     cpp_type_string (cpp_type_string),
75     cpp_initial_string (cpp_initial_string),
76     flags (flags)
77     { }
78 
79   tree_kind kind ();
80 };
81 
82 struct V2CC_ImplicitSignalDeclaration : IIR_SignalDeclaration {
83 
V2CC_ImplicitSignalDeclarationV2CC_ImplicitSignalDeclaration84   V2CC_ImplicitSignalDeclaration (pIIR_PosInfo pos, pIIR_TextLiteral declarator, pIIR_DeclarativeRegion declarative_region, pIIR_AttributeValueList attributes, int seqno, pIIR_Type subtype, pIIR_Expression initial_value, pIIR_ObjectReference alias_base, IR_SignalKind signal_kind)
85   : IIR_SignalDeclaration (pos, declarator, declarative_region, attributes, seqno, subtype, initial_value, alias_base, signal_kind)
86     { }
87 
88   tree_kind kind ();
89 };
90 
91 struct V2CC_ImplicitSignalDeclaration_WaitFor : V2CC_ImplicitSignalDeclaration {
92 
V2CC_ImplicitSignalDeclaration_WaitForV2CC_ImplicitSignalDeclaration_WaitFor93   V2CC_ImplicitSignalDeclaration_WaitFor (pIIR_PosInfo pos, pIIR_TextLiteral declarator, pIIR_DeclarativeRegion declarative_region, pIIR_AttributeValueList attributes, int seqno, pIIR_Type subtype, pIIR_Expression initial_value, pIIR_ObjectReference alias_base, IR_SignalKind signal_kind)
94   : V2CC_ImplicitSignalDeclaration (pos, declarator, declarative_region, attributes, seqno, subtype, initial_value, alias_base, signal_kind)
95     { }
96 
97   tree_kind kind ();
98 };
99 
100 struct V2CC_ImplicitSignalDeclaration_Transaction : V2CC_ImplicitSignalDeclaration {
101 
V2CC_ImplicitSignalDeclaration_TransactionV2CC_ImplicitSignalDeclaration_Transaction102   V2CC_ImplicitSignalDeclaration_Transaction (pIIR_PosInfo pos, pIIR_TextLiteral declarator, pIIR_DeclarativeRegion declarative_region, pIIR_AttributeValueList attributes, int seqno, pIIR_Type subtype, pIIR_Expression initial_value, pIIR_ObjectReference alias_base, IR_SignalKind signal_kind)
103   : V2CC_ImplicitSignalDeclaration (pos, declarator, declarative_region, attributes, seqno, subtype, initial_value, alias_base, signal_kind)
104     { }
105 
106   tree_kind kind ();
107 };
108 
109 struct V2CC_InternalCode : IIR_ObjectDeclaration {
110   string cpp_header_string;
111   string cpp_impl_string;
112   int flags;
113 
V2CC_InternalCodeV2CC_InternalCode114   V2CC_InternalCode (pIIR_PosInfo pos, pIIR_TextLiteral declarator, pIIR_DeclarativeRegion declarative_region, pIIR_AttributeValueList attributes, int seqno, pIIR_Type subtype, pIIR_Expression initial_value, pIIR_ObjectReference alias_base, string cpp_header_string, string cpp_impl_string, int flags)
115   : IIR_ObjectDeclaration (pos, declarator, declarative_region, attributes, seqno, subtype, initial_value, alias_base),
116     cpp_header_string (cpp_header_string),
117     cpp_impl_string (cpp_impl_string),
118     flags (flags)
119     { }
120 
121   tree_kind kind ();
122 };
123 
124 struct V2CC_ImplicitSubtypeDeclaration : IIR_SubtypeDeclaration {
125 
V2CC_ImplicitSubtypeDeclarationV2CC_ImplicitSubtypeDeclaration126   V2CC_ImplicitSubtypeDeclaration (pIIR_PosInfo pos, pIIR_TextLiteral declarator, pIIR_DeclarativeRegion declarative_region, pIIR_AttributeValueList attributes, int seqno, pIIR_Type type)
127   : IIR_SubtypeDeclaration (pos, declarator, declarative_region, attributes, seqno, type)
128     { }
129 
130   tree_kind kind ();
131 };
132 
133 typedef void (*v2cc_generic_0_mtype) (tree_base_node*, string& str, RegionStack & ctxt, int l);
134 extern tree_generic<v2cc_generic_0_mtype> v2cc_generic_0;
135 void emit_decl (tree_base_node *, string& str, RegionStack & ctxt, int l);
136 
137 typedef void (*v2cc_generic_1_mtype) (tree_base_node*, string& str, RegionStack & ctxt, int l);
138 extern tree_generic<v2cc_generic_1_mtype> v2cc_generic_1;
139 void emit_main (tree_base_node *, string& str, RegionStack & ctxt, int l);
140 
141 typedef bool (*v2cc_generic_2_mtype) (tree_base_node*, string& str, RegionStack & ctxt, id_type t);
142 extern tree_generic<v2cc_generic_2_mtype> v2cc_generic_2;
143 bool emit_expr (tree_base_node *, string& str, RegionStack & ctxt, id_type t);
144 
145 typedef bool (*v2cc_generic_3_mtype) (tree_base_node*, string& str, RegionStack & ctxt, id_type t);
146 extern tree_generic<v2cc_generic_3_mtype> v2cc_generic_3;
147 bool cdfg_emit_expr (tree_base_node *, string& str, RegionStack & ctxt, id_type t);
148 
149 typedef void (*v2cc_generic_4_mtype) (tree_base_node*, string& str, RegionStack & ctxt, int l);
150 extern tree_generic<v2cc_generic_4_mtype> v2cc_generic_4;
151 void emit_hdr (tree_base_node *, string& str, RegionStack & ctxt, int l);
152 
153 typedef void (*v2cc_generic_5_mtype) (tree_base_node*, string& str, RegionStack & ctxt, int l);
154 extern tree_generic<v2cc_generic_5_mtype> v2cc_generic_5;
155 void emit_impl (tree_base_node *, string& str, RegionStack & ctxt, int l);
156 
157 typedef void (*v2cc_generic_6_mtype) (tree_base_node*, string& str, RegionStack & ctxt, int l);
158 extern tree_generic<v2cc_generic_6_mtype> v2cc_generic_6;
159 void cdfg_emit_impl (tree_base_node *, string& str, RegionStack & ctxt, int l);
160 
161 typedef IR_StaticLevel (*v2cc_generic_7_mtype) (tree_base_node*, string& str, RegionStack & ctxt, bool static_info, int l);
162 extern tree_generic<v2cc_generic_7_mtype> v2cc_generic_7;
163 IR_StaticLevel emit_info_init (tree_base_node *, string& str, RegionStack & ctxt, bool static_info, int l);
164 
165 typedef bool (*v2cc_generic_8_mtype) (tree_base_node*, list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
166 extern tree_generic<v2cc_generic_8_mtype> v2cc_generic_8;
167 bool get_acl (tree_base_node *, list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
168 
169 typedef bool (*v2cc_generic_9_mtype) (tree_base_node*, string& str, RegionStack & ctxt, IR_StaticLevel slevel, id_type t, bool start);
170 extern tree_generic<v2cc_generic_9_mtype> v2cc_generic_9;
171 bool cdfg_get_static_expr (tree_base_node *, string& str, RegionStack & ctxt, IR_StaticLevel slevel, id_type t, bool start);
172 
173 typedef int (*v2cc_generic_10_mtype) (tree_base_node*, RegionStack & rstack, bool collect_access_info);
174 extern tree_generic<v2cc_generic_10_mtype> v2cc_generic_10;
175 int explore_and_check (tree_base_node *, RegionStack & rstack, bool collect_access_info);
176 
177 typedef pAccessDescriptor (*v2cc_generic_11_mtype) (tree_base_node*, ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
178 extern tree_generic<v2cc_generic_11_mtype> v2cc_generic_11;
179 pAccessDescriptor get_context (tree_base_node *, ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
180 
181 typedef int (*v2cc_generic_12_mtype) (tree_base_node*, RegionStack & rstack);
182 extern tree_generic<v2cc_generic_12_mtype> v2cc_generic_12;
183 int check_expression (tree_base_node *, RegionStack & rstack);
184 
185 typedef op_type (*v2cc_generic_13_mtype) (tree_base_node*);
186 extern tree_generic<v2cc_generic_13_mtype> v2cc_generic_13;
187 op_type get_operator_type (tree_base_node *);
188 
189 typedef pIIR_ObjectDeclaration (*v2cc_generic_14_mtype) (tree_base_node*);
190 extern tree_generic<v2cc_generic_14_mtype> v2cc_generic_14;
191 pIIR_ObjectDeclaration get_object_declaration (tree_base_node *);
192 
193 typedef string (*v2cc_generic_15_mtype) (tree_base_node*, RegionStack & rstack, id_type obj_access);
194 extern tree_generic<v2cc_generic_15_mtype> v2cc_generic_15;
195 string qid (tree_base_node *, RegionStack & rstack, id_type obj_access);
196 
197 typedef string (*v2cc_generic_16_mtype) (tree_base_node*, RegionStack & rstack, bool static_object);
198 extern tree_generic<v2cc_generic_16_mtype> v2cc_generic_16;
199 string get_type_info_obj (tree_base_node *, RegionStack & rstack, bool static_object);
200 
201 typedef vector<RangeDescriptor> (*v2cc_generic_17_mtype) (tree_base_node*, RegionStack & rstack, IR_StaticLevel slevel);
202 extern tree_generic<v2cc_generic_17_mtype> v2cc_generic_17;
203 vector<RangeDescriptor> get_discrete_range (tree_base_node *, RegionStack & rstack, IR_StaticLevel slevel);
204 
205 typedef IR_StaticLevel (*v2cc_generic_18_mtype) (tree_base_node*, RegionStack & rstack);
206 extern tree_generic<v2cc_generic_18_mtype> v2cc_generic_18;
207 IR_StaticLevel get_static_level (tree_base_node *, RegionStack & rstack);
208 
209 typedef int (*v2cc_generic_19_mtype) (tree_base_node*, RegionStack & rstack);
210 extern tree_generic<v2cc_generic_19_mtype> v2cc_generic_19;
211 int constant_fold (tree_base_node *, RegionStack & rstack);
212 
213 typedef void (*v2cc_generic_20_mtype) (tree_base_node*, RegionStack & rstack);
214 extern tree_generic<v2cc_generic_20_mtype> v2cc_generic_20;
215 void optimize (tree_base_node *, RegionStack & rstack);
216 void m_emit_decl (pIIR_ComponentDeclaration , string& str, RegionStack & ctxt, int l);
217 void m_emit_decl (pIIR_ConfigurationDeclaration , string& str, RegionStack & ctxt, int l);
218 void m_emit_decl (pIIR_ArchitectureDeclaration , string& str, RegionStack & ctxt, int l);
219 void m_emit_decl (pIIR_EntityDeclaration , string& str, RegionStack & ctxt, int l);
220 void m_emit_decl (pIIR_PackageBodyDeclaration , string& str, RegionStack & ctxt, int l);
221 void m_emit_decl (pIIR_PackageDeclaration , string& str, RegionStack & ctxt, int l);
222 void m_emit_decl (pIIR_TypeDeclaration , string& str, RegionStack & ctxt, int l);
223 void m_emit_decl (pIIR_SignalDeclaration , string& str, RegionStack & ctxt, int l);
224 void m_emit_decl (pIIR_FileDeclaration , string& str, RegionStack & ctxt, int l);
225 void m_emit_decl (pIIR_ConstantDeclaration , string& str, RegionStack & ctxt, int l);
226 void m_emit_decl (pIIR_VariableDeclaration , string& str, RegionStack & ctxt, int l);
227 void m_emit_decl (pIIR_SubprogramDeclaration , string& str, RegionStack & ctxt, int l);
228 void m_emit_decl (pIIR_Declaration , string& str, RegionStack & ctxt, int l);
229 void m_emit_main (pIIR_ConfigurationDeclaration , string& str, RegionStack & ctxt, int l);
230 void m_emit_main (pIIR_ArchitectureDeclaration , string& str, RegionStack & ctxt, int l);
231 void m_emit_main (pIIR_Declaration , string& str, RegionStack & ctxt, int l);
232 bool m_emit_expr (pIIR_Allocator , string& str, RegionStack & ctxt, id_type t);
233 bool m_emit_expr (pIIR_NullExpression , string& str, RegionStack & ctxt, id_type t);
234 bool m_emit_expr (pIIR_EnumerationLiteral , string& str, RegionStack & ctxt, id_type t);
235 bool m_emit_expr (pIIR_Expression , string& str, RegionStack & ctxt, id_type t);
236 bool m_emit_expr (pIIR_AttrTypeValue , string& str, RegionStack & ctxt, id_type t);
237 bool m_emit_expr (pIIR_AttrTypeFunc , string& str, RegionStack & ctxt, id_type t);
238 bool m_emit_expr (pIIR_AttrArrayFunc , string& str, RegionStack & ctxt, id_type t);
239 bool m_emit_expr (pIIR_AttrSigFunc , string& str, RegionStack & ctxt, id_type t);
240 bool m_emit_expr (pIIR_SignalAttr , string& str, RegionStack & ctxt, id_type t);
241 bool m_emit_expr (pIIR_AccessReference , string& str, RegionStack & ctxt, id_type t);
242 bool m_emit_expr (pIIR_SliceReference , string& str, RegionStack & ctxt, id_type t);
243 bool m_emit_expr (pIIR_ArrayAggregate , string& str, RegionStack & ctxt, id_type t);
244 bool m_emit_expr (pIIR_RecordAggregate , string& str, RegionStack & ctxt, id_type t);
245 bool m_emit_expr (pIIR_RecordReference , string& str, RegionStack & ctxt, id_type t);
246 bool m_emit_expr (pIIR_ArrayLiteralExpression , string& str, RegionStack & ctxt, id_type t);
247 bool m_emit_expr (pIIR_ArrayReference , string& str, RegionStack & ctxt, id_type t);
248 bool m_emit_expr (pIIR_EnumLiteralReference , string& str, RegionStack & ctxt, id_type t);
249 bool m_emit_expr (pIIR_QualifiedExpression , string& str, RegionStack & ctxt, id_type t);
250 bool m_emit_expr (pIIR_TypeConversion , string& str, RegionStack & ctxt, id_type t);
251 bool m_emit_expr (pIIR_AbstractLiteralExpression , string& str, RegionStack & ctxt, id_type t);
252 bool m_emit_expr (pIIR_SimpleReference , string& str, RegionStack & ctxt, id_type t);
253 bool m_emit_expr (pIIR_FunctionCall , string& str, RegionStack & ctxt, id_type t);
254 bool m_cdfg_emit_expr (pIIR_Allocator , string& str, RegionStack & ctxt, id_type t);
255 bool m_cdfg_emit_expr (pIIR_NullExpression , string& str, RegionStack & ctxt, id_type t);
256 bool m_cdfg_emit_expr (pIIR_EnumerationLiteral , string& str, RegionStack & ctxt, id_type t);
257 bool m_cdfg_emit_expr (pIIR_Expression , string& str, RegionStack & ctxt, id_type t);
258 bool m_cdfg_emit_expr (pIIR_AttrTypeValue , string& str, RegionStack & ctxt, id_type t);
259 bool m_cdfg_emit_expr (pIIR_AttrTypeFunc , string& str, RegionStack & ctxt, id_type t);
260 bool m_cdfg_emit_expr (pIIR_AttrArrayFunc , string& str, RegionStack & ctxt, id_type t);
261 bool m_cdfg_emit_expr (pIIR_AttrSigFunc , string& str, RegionStack & ctxt, id_type t);
262 bool m_cdfg_emit_expr (pIIR_SignalAttr , string& str, RegionStack & ctxt, id_type t);
263 bool m_cdfg_emit_expr (pIIR_AccessReference , string& str, RegionStack & ctxt, id_type t);
264 bool m_cdfg_emit_expr (pIIR_SliceReference , string& str, RegionStack & ctxt, id_type t);
265 bool m_cdfg_emit_expr (pIIR_ArrayAggregate , string& str, RegionStack & ctxt, id_type t);
266 bool m_cdfg_emit_expr (pIIR_RecordAggregate , string& str, RegionStack & ctxt, id_type t);
267 bool m_cdfg_emit_expr (pIIR_RecordReference , string& str, RegionStack & ctxt, id_type t);
268 bool m_cdfg_emit_expr (pIIR_ArrayLiteralExpression , string& str, RegionStack & ctxt, id_type t);
269 bool m_cdfg_emit_expr (pIIR_ArrayReference , string& str, RegionStack & ctxt, id_type t);
270 bool m_cdfg_emit_expr (pIIR_EnumLiteralReference , string& str, RegionStack & ctxt, id_type t);
271 bool m_cdfg_emit_expr (pIIR_QualifiedExpression , string& str, RegionStack & ctxt, id_type t);
272 bool m_cdfg_emit_expr (pIIR_TypeConversion , string& str, RegionStack & ctxt, id_type t);
273 bool m_cdfg_emit_expr (pIIR_AbstractLiteralExpression , string& str, RegionStack & ctxt, id_type t);
274 bool m_cdfg_emit_expr (pIIR_SimpleReference , string& str, RegionStack & ctxt, id_type t);
275 bool m_cdfg_emit_expr (pIIR_FunctionCall , string& str, RegionStack & ctxt, id_type t);
276 void m_emit_hdr (pIIR_Root , string& str, RegionStack & ctxt, int l);
277 void m_emit_hdr (pIIR_RecordSubtype , string& str, RegionStack & ctxt, int l);
278 void m_emit_hdr (pIIR_RecordType , string& str, RegionStack & ctxt, int l);
279 void m_emit_hdr (pIIR_TypeDeclaration , string& str, RegionStack & ctxt, int l);
280 void m_emit_hdr (pIIR_ArraySubtype , string& str, RegionStack & ctxt, int l);
281 void m_emit_hdr (pIIR_ArrayType , string& str, RegionStack & ctxt, int l);
282 void m_emit_hdr (pIIR_ScalarSubtype , string& str, RegionStack & ctxt, int l);
283 void m_emit_hdr (pIIR_FileType , string& str, RegionStack & ctxt, int l);
284 void m_emit_hdr (pIIR_AccessType , string& str, RegionStack & ctxt, int l);
285 void m_emit_hdr (pIIR_EnumerationType , string& str, RegionStack & ctxt, int l);
286 void m_emit_hdr (pIIR_PredefinedProcedureDeclaration , string& str, RegionStack & ctxt, int l);
287 void m_emit_hdr (pIIR_PredefinedFunctionDeclaration , string& str, RegionStack & ctxt, int l);
288 void m_emit_hdr (pIIR_SubprogramDeclaration , string& str, RegionStack & ctxt, int l);
289 void m_emit_hdr (pIIR_ConcurrentStatementList , string& str, RegionStack & ctxt, int l);
290 void m_emit_hdr (pIIR_ConcurrentStatement , string& str, RegionStack & ctxt, int l);
291 void m_emit_hdr (pIIR_ConcurrentGenerateStatement , string& str, RegionStack & ctxt, int l);
292 void m_emit_hdr (pIIR_BlockStatement , string& str, RegionStack & ctxt, int l);
293 void m_emit_hdr (pIIR_ComponentInstantiationStatement , string& str, RegionStack & ctxt, int l);
294 void m_emit_hdr (pIIR_ProcessStatement , string& str, RegionStack & ctxt, int l);
295 void m_emit_hdr (pIIR_PackageBodyDeclaration , string& str, RegionStack & ctxt, int l);
296 void m_emit_hdr (pIIR_PackageDeclaration , string& str, RegionStack & ctxt, int l);
297 void m_emit_hdr (pIIR_ArchitectureDeclaration , string& str, RegionStack & ctxt, int l);
298 void m_emit_hdr (pIIR_EntityDeclaration , string& str, RegionStack & ctxt, int l);
299 void m_emit_impl (pIIR_RecordSubtype , string& str, RegionStack & ctxt, int l);
300 void m_emit_impl (pIIR_RecordType , string& str, RegionStack & ctxt, int l);
301 void m_emit_impl (pIIR_FileType , string& str, RegionStack & ctxt, int l);
302 void m_emit_impl (pIIR_AccessType , string& str, RegionStack & ctxt, int l);
303 void m_emit_impl (pIIR_ArraySubtype , string& str, RegionStack & ctxt, int l);
304 void m_emit_impl (pIIR_ArrayType , string& str, RegionStack & ctxt, int l);
305 void m_emit_impl (pIIR_ScalarSubtype , string& str, RegionStack & ctxt, int l);
306 void m_emit_impl (pIIR_EnumerationType , string& str, RegionStack & ctxt, int l);
307 void m_emit_impl (pIIR_PredefinedProcedureDeclaration , string& str, RegionStack & ctxt, int l);
308 void m_emit_impl (pIIR_PredefinedFunctionDeclaration , string& str, RegionStack & ctxt, int l);
309 void m_emit_impl (pIIR_SubprogramDeclaration , string& str, RegionStack & ctxt, int l);
310 void m_emit_impl (pIIR_ConcurrentStatementList , string& str, RegionStack & ctxt, int l);
311 void m_emit_impl (pIIR_ConcurrentStatement , string& str, RegionStack & ctxt, int l);
312 void m_emit_impl (pIIR_SequentialStatement , string& str, RegionStack & ctxt, int l);
313 void m_emit_impl (pIIR_SequentialStatementList , string& str, RegionStack & ctxt, int l);
314 void m_emit_impl (pIIR_ConcurrentGenerateStatement , string& str, RegionStack & ctxt, int l);
315 void m_emit_impl (pIIR_BlockStatement , string& str, RegionStack & ctxt, int l);
316 void m_emit_impl (pIIR_PackageBodyDeclaration , string& str, RegionStack & ctxt, int l);
317 void m_emit_impl (pIIR_PackageDeclaration , string& str, RegionStack & ctxt, int l);
318 void m_emit_impl (pIIR_ComponentInstantiationStatement , string& str, RegionStack & ctxt, int l);
319 void m_emit_impl (pIIR_ProcessStatement , string& str, RegionStack & ctxt, int l);
320 void m_emit_impl (pIIR_ArchitectureDeclaration , string& str, RegionStack & ctxt, int l);
321 void m_emit_impl (pIIR_EntityDeclaration , string& str, RegionStack & ctxt, int l);
322 void m_emit_impl (pIIR_SequentialStatement , string& str, RegionStack & ctxt, int l);
323 void m_emit_impl (pIIR_SignalAssignmentStatement , string& str, RegionStack & ctxt, int l);
324 void m_emit_impl (pIIR_ReportStatement , string& str, RegionStack & ctxt, int l);
325 void m_emit_impl (pIIR_AssertionStatement , string& str, RegionStack & ctxt, int l);
326 void m_emit_impl (pIIR_WaitStatement , string& str, RegionStack & ctxt, int l);
327 void m_emit_impl (pIIR_ProcedureCallStatement , string& str, RegionStack & ctxt, int l);
328 void m_emit_impl (pIIR_ExitStatement , string& str, RegionStack & ctxt, int l);
329 void m_emit_impl (pIIR_NextStatement , string& str, RegionStack & ctxt, int l);
330 void m_emit_impl (pIIR_LoopStatement , string& str, RegionStack & ctxt, int l);
331 void m_emit_impl (pIIR_CaseStatement , string& str, RegionStack & ctxt, int l);
332 void m_emit_impl (pIIR_IfStatement , string& str, RegionStack & ctxt, int l);
333 void m_emit_impl (pIIR_VariableAssignmentStatement , string& str, RegionStack & ctxt, int l);
334 void m_emit_impl (pIIR_ReturnStatement , string& str, RegionStack & ctxt, int l);
335 void m_emit_impl (pIIR_NullStatement , string& str, RegionStack & ctxt, int l);
336 void m_cdfg_emit_impl (pIIR_FileType , string& str, RegionStack & ctxt, int l);
337 void m_cdfg_emit_impl (pIIR_AccessType , string& str, RegionStack & ctxt, int l);
338 void m_cdfg_emit_impl (pIIR_ArraySubtype , string& str, RegionStack & ctxt, int l);
339 void m_cdfg_emit_impl (pIIR_ArrayType , string& str, RegionStack & ctxt, int l);
340 void m_cdfg_emit_impl (pIIR_ScalarSubtype , string& str, RegionStack & ctxt, int l);
341 void m_cdfg_emit_impl (pIIR_EnumerationType , string& str, RegionStack & ctxt, int l);
342 void m_cdfg_emit_impl (pIIR_PredefinedProcedureDeclaration , string& str, RegionStack & ctxt, int l);
343 void m_cdfg_emit_impl (pIIR_PredefinedFunctionDeclaration , string& str, RegionStack & ctxt, int l);
344 void m_cdfg_emit_impl (pIIR_SubprogramDeclaration , string& str, RegionStack & ctxt, int l);
345 void m_cdfg_emit_impl (pIIR_ConcurrentStatementList , string& str, RegionStack & ctxt, int l);
346 void m_cdfg_emit_impl (pIIR_ConcurrentStatement , string& str, RegionStack & ctxt, int l);
347 void m_cdfg_emit_impl (pIIR_SequentialStatement , string& str, RegionStack & ctxt, int l);
348 void m_cdfg_emit_impl (pIIR_SequentialStatementList , string& str, RegionStack & ctxt, int l);
349 void m_cdfg_emit_impl (pIIR_ConcurrentGenerateStatement , string& str, RegionStack & ctxt, int l);
350 void m_cdfg_emit_impl (pIIR_BlockStatement , string& str, RegionStack & ctxt, int l);
351 void m_cdfg_emit_impl (pIIR_PackageBodyDeclaration , string& str, RegionStack & ctxt, int l);
352 void m_cdfg_emit_impl (pIIR_PackageDeclaration , string& str, RegionStack & ctxt, int l);
353 void m_cdfg_emit_impl (pIIR_ComponentInstantiationStatement , string& str, RegionStack & ctxt, int l);
354 void m_cdfg_emit_impl (pIIR_ProcessStatement , string& str, RegionStack & ctxt, int l);
355 void m_cdfg_emit_impl (pIIR_ArchitectureDeclaration , string& str, RegionStack & ctxt, int l);
356 void m_cdfg_emit_impl (pIIR_EntityDeclaration , string& str, RegionStack & ctxt, int l);
357 void m_cdfg_emit_impl (pIIR_SequentialStatement , string& str, RegionStack & ctxt, int l);
358 void m_cdfg_emit_impl (pIIR_SignalAssignmentStatement , string& str, RegionStack & ctxt, int l);
359 void m_cdfg_emit_impl (pIIR_ReportStatement , string& str, RegionStack & ctxt, int l);
360 void m_cdfg_emit_impl (pIIR_AssertionStatement , string& str, RegionStack & ctxt, int l);
361 void m_cdfg_emit_impl (pIIR_WaitStatement , string& str, RegionStack & ctxt, int l);
362 void m_cdfg_emit_impl (pIIR_ProcedureCallStatement , string& str, RegionStack & ctxt, int l);
363 void m_cdfg_emit_impl (pIIR_ExitStatement , string& str, RegionStack & ctxt, int l);
364 void m_cdfg_emit_impl (pIIR_NextStatement , string& str, RegionStack & ctxt, int l);
365 void m_cdfg_emit_impl (pIIR_LoopStatement , string& str, RegionStack & ctxt, int l);
366 void m_cdfg_emit_impl (pIIR_CaseStatement , string& str, RegionStack & ctxt, int l);
367 void m_cdfg_emit_impl (pIIR_IfStatement , string& str, RegionStack & ctxt, int l);
368 void m_cdfg_emit_impl (pIIR_VariableAssignmentStatement , string& str, RegionStack & ctxt, int l);
369 void m_cdfg_emit_impl (pIIR_ReturnStatement , string& str, RegionStack & ctxt, int l);
370 void m_cdfg_emit_impl (pIIR_NullStatement , string& str, RegionStack & ctxt, int l);
371 IR_StaticLevel m_emit_info_init (pIIR_RecordSubtype , string& str, RegionStack & ctxt, bool static_info, int l);
372 IR_StaticLevel m_emit_info_init (pIIR_RecordType , string& str, RegionStack & ctxt, bool static_info, int l);
373 IR_StaticLevel m_emit_info_init (pIIR_FileType , string& str, RegionStack & ctxt, bool static_info, int l);
374 IR_StaticLevel m_emit_info_init (pIIR_AccessType , string& str, RegionStack & ctxt, bool static_info, int l);
375 IR_StaticLevel m_emit_info_init (pIIR_ArraySubtype , string& str, RegionStack & ctxt, bool static_info, int l);
376 IR_StaticLevel m_emit_info_init (pIIR_ArrayType , string& str, RegionStack & ctxt, bool static_info, int l);
377 IR_StaticLevel m_emit_info_init (pIIR_ScalarSubtype , string& str, RegionStack & ctxt, bool static_info, int l);
378 IR_StaticLevel m_emit_info_init (pIIR_EnumerationType , string& str, RegionStack & ctxt, bool static_info, int l);
379 bool m_get_acl (pIIR_SliceReference , list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
380 bool m_get_acl (pIIR_ExplicitRange , list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
381 bool m_get_acl (pIIR_RecordReference , list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
382 bool m_get_acl (pIIR_ArrayReference , list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
383 bool m_get_acl (pIIR_SimpleReference , list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
384 bool m_get_acl (pIIR_Expression , list<pair<pIIR_Expression, pIIR_Root> >& alist, RegionStack & ctxt, IR_StaticLevel slevel, bool start);
385 bool m_cdfg_get_static_expr (pIIR_SliceReference , string& str, RegionStack & ctxt, IR_StaticLevel slevel, id_type t, bool start);
386 bool m_cdfg_get_static_expr (pIIR_ExplicitRange , string& str, RegionStack & ctxt, IR_StaticLevel slevel, id_type t, bool start);
387 bool m_cdfg_get_static_expr (pIIR_ArrayReference , string& str, RegionStack & ctxt, IR_StaticLevel slevel, id_type t, bool start);
388 bool m_cdfg_get_static_expr (pIIR_SimpleReference , string& str, RegionStack & ctxt, IR_StaticLevel slevel, id_type t, bool start);
389 bool m_cdfg_get_static_expr (pIIR_Expression , string& str, RegionStack & ctxt, IR_StaticLevel slevel, id_type t, bool start);
390 int m_explore_and_check (pIIR_PredefinedFunctionDeclaration , RegionStack & rstack, bool collect_access_info);
391 int m_explore_and_check (pIIR_ConcurrentGenerateForStatement , RegionStack & rstack, bool collect_access_info);
392 int m_explore_and_check (pIIR_ConcurrentGenerateIfStatement , RegionStack & rstack, bool collect_access_info);
393 int m_explore_and_check (pIIR_ReturnStatement , RegionStack & rstack, bool collect_access_info);
394 int m_explore_and_check (pIIR_NullStatement , RegionStack & rstack, bool collect_access_info);
395 int m_explore_and_check (pIIR_Subtype , RegionStack & rstack, bool collect_access_info);
396 int m_explore_and_check (pIIR_ScalarSubtype , RegionStack & rstack, bool collect_access_info);
397 int m_explore_and_check (pIIR_FileType , RegionStack & rstack, bool collect_access_info);
398 int m_explore_and_check (pIIR_ArraySubtype , RegionStack & rstack, bool collect_access_info);
399 int m_explore_and_check (pIIR_ArrayType , RegionStack & rstack, bool collect_access_info);
400 int m_explore_and_check (pIIR_RecordType , RegionStack & rstack, bool collect_access_info);
401 int m_explore_and_check (pIIR_Type , RegionStack & rstack, bool collect_access_info);
402 int m_explore_and_check (pIIR_EnumerationType , RegionStack & rstack, bool collect_access_info);
403 int m_explore_and_check (pIIR_ProcedureCallStatement , RegionStack & rstack, bool collect_access_info);
404 int m_explore_and_check (pIIR_ReportStatement , RegionStack & rstack, bool collect_access_info);
405 int m_explore_and_check (pIIR_AssertionStatement , RegionStack & rstack, bool collect_access_info);
406 int m_explore_and_check (pIIR_ComponentInstantiationStatement , RegionStack & rstack, bool collect_access_info);
407 int m_explore_and_check (pIIR_VariableAssignmentStatement , RegionStack & rstack, bool collect_access_info);
408 int m_explore_and_check (pIIR_SignalAssignmentStatement , RegionStack & rstack, bool collect_access_info);
409 int m_explore_and_check (pIIR_AssociationElement , RegionStack & rstack, bool collect_access_info);
410 int m_explore_and_check (pIIR_WaitStatement , RegionStack & rstack, bool collect_access_info);
411 int m_explore_and_check (pIIR_CaseStatement , RegionStack & rstack, bool collect_access_info);
412 int m_explore_and_check (pIIR_ExitStatement , RegionStack & rstack, bool collect_access_info);
413 int m_explore_and_check (pIIR_NextStatement , RegionStack & rstack, bool collect_access_info);
414 int m_explore_and_check (pIIR_LoopStatement , RegionStack & rstack, bool collect_access_info);
415 int m_explore_and_check (pIIR_WhileLoopStatement , RegionStack & rstack, bool collect_access_info);
416 int m_explore_and_check (pIIR_ForLoopStatement , RegionStack & rstack, bool collect_access_info);
417 int m_explore_and_check (pIIR_IfStatement , RegionStack & rstack, bool collect_access_info);
418 int m_explore_and_check (pIIR_SequentialStatementList , RegionStack & rstack, bool collect_access_info);
419 int m_explore_and_check (pIIR_ComponentDeclaration , RegionStack & rstack, bool collect_access_info);
420 int m_explore_and_check (pIIR_ConfigurationDeclaration , RegionStack & rstack, bool collect_access_info);
421 int m_explore_and_check (pIIR_SubprogramDeclaration , RegionStack & rstack, bool collect_access_info);
422 int m_explore_and_check (pIIR_PackageBodyDeclaration , RegionStack & rstack, bool collect_access_info);
423 int m_explore_and_check (pIIR_PackageDeclaration , RegionStack & rstack, bool collect_access_info);
424 int m_explore_and_check (pIIR_ProcessStatement , RegionStack & rstack, bool collect_access_info);
425 int m_explore_and_check (pIIR_ConcurrentStatementList , RegionStack & rstack, bool collect_access_info);
426 int m_explore_and_check (pIIR_ArchitectureDeclaration , RegionStack & rstack, bool collect_access_info);
427 int m_explore_and_check (pIIR_InterfaceDeclaration , RegionStack & rstack, bool collect_access_info);
428 int m_explore_and_check (pIIR_DeclarationList , RegionStack & rstack, bool collect_access_info);
429 int m_explore_and_check (pIIR_EntityDeclaration , RegionStack & rstack, bool collect_access_info);
430 pAccessDescriptor m_get_context (pIIR_AttrArrayFunc , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
431 pAccessDescriptor m_get_context (pIIR_AttrTypeValue , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
432 pAccessDescriptor m_get_context (pIIR_AttrTypeFunc , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
433 pAccessDescriptor m_get_context (pIIR_Allocator , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
434 pAccessDescriptor m_get_context (pIIR_QualifiedExpression , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
435 pAccessDescriptor m_get_context (pIIR_Type , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
436 pAccessDescriptor m_get_context (pIIR_TypeConversion , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
437 pAccessDescriptor m_get_context (pIIR_AttrSigFunc , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
438 pAccessDescriptor m_get_context (pIIR_WaitStatement , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
439 pAccessDescriptor m_get_context (pIIR_RecordAggregate , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
440 pAccessDescriptor m_get_context (pIIR_ArrayAggregate , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
441 pAccessDescriptor m_get_context (pIIR_ExpressionList , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
442 pAccessDescriptor m_get_context (pIIR_Expression , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
443 pAccessDescriptor m_get_context (pIIR_RecordReference , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
444 pAccessDescriptor m_get_context (pIIR_SliceReference , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
445 pAccessDescriptor m_get_context (pIIR_ElementAssociation , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
446 pAccessDescriptor m_get_context (pIIR_SingleIndexedAssociation , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
447 pAccessDescriptor m_get_context (pIIR_RangeIndexedAssociation , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
448 pAccessDescriptor m_get_context (pIIR_OthersIndexedAssociation , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
449 pAccessDescriptor m_get_context (pIIR_ExplicitRange , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
450 pAccessDescriptor m_get_context (pIIR_ArrayRange , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
451 pAccessDescriptor m_get_context (pIIR_AccessReference , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
452 pAccessDescriptor m_get_context (pIIR_ArrayReference , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
453 pAccessDescriptor m_get_context (pIIR_SimpleReference , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
454 pAccessDescriptor m_get_context (pIIR_FunctionCall , ContextInfo & ctxt, RegionStack & rstack, bool target, int level);
455 int m_check_expression (pIIR_QualifiedExpression , RegionStack & rstack);
456 int m_check_expression (pIIR_TypeConversion , RegionStack & rstack);
457 int m_check_expression (pIIR_ArrayLiteralExpression , RegionStack & rstack);
458 int m_check_expression (pIIR_AttrSigFunc , RegionStack & rstack);
459 int m_check_expression (pIIR_RecordAggregate , RegionStack & rstack);
460 int m_check_expression (pIIR_ArrayAggregate , RegionStack & rstack);
461 int m_check_expression (pIIR_ExpressionList , RegionStack & rstack);
462 int m_check_expression (pIIR_Expression , RegionStack & rstack);
463 int m_check_expression (pIIR_RecordReference , RegionStack & rstack);
464 int m_check_expression (pIIR_SliceReference , RegionStack & rstack);
465 int m_check_expression (pIIR_SingleIndexedAssociation , RegionStack & rstack);
466 int m_check_expression (pIIR_RangeIndexedAssociation , RegionStack & rstack);
467 int m_check_expression (pIIR_OthersIndexedAssociation , RegionStack & rstack);
468 int m_check_expression (pIIR_ExplicitRange , RegionStack & rstack);
469 int m_check_expression (pIIR_ArrayRange , RegionStack & rstack);
470 int m_check_expression (pIIR_ArrayReference , RegionStack & rstack);
471 int m_check_expression (pIIR_AccessReference , RegionStack & rstack);
472 int m_check_expression (pIIR_SimpleReference , RegionStack & rstack);
473 int m_check_expression (pIIR_FunctionCall , RegionStack & rstack);
474 op_type m_get_operator_type (pIIR_ProcedureDeclaration );
475 op_type m_get_operator_type (pIIR_FunctionDeclaration );
476 pIIR_ObjectDeclaration m_get_object_declaration (pIIR_RecordReference );
477 pIIR_ObjectDeclaration m_get_object_declaration (pIIR_ArrayReference );
478 pIIR_ObjectDeclaration m_get_object_declaration (pIIR_SignalAttr );
479 pIIR_ObjectDeclaration m_get_object_declaration (pIIR_SliceReference );
480 pIIR_ObjectDeclaration m_get_object_declaration (pIIR_SimpleReference );
481 pIIR_ObjectDeclaration m_get_object_declaration (pIIR_ObjectReference );
482 string m_qid (pIIR_Type , RegionStack & rstack, id_type obj_access);
483 string m_qid (pIIR_Subtype , RegionStack & rstack, id_type obj_access);
484 string m_qid (pIIR_TypeDeclaration , RegionStack & rstack, id_type obj_access);
485 string m_qid (pIIR_SubprogramDeclaration , RegionStack & rstack, id_type obj_access);
486 string m_qid (pIIR_SignalDeclaration , RegionStack & rstack, id_type obj_access);
487 string m_qid (pIIR_ObjectDeclaration , RegionStack & rstack, id_type obj_access);
488 string m_qid (pV2CC_ImplicitSignalDeclaration_WaitFor , RegionStack & rstack, id_type obj_access);
489 string m_qid (pIIR_SignalInterfaceDeclaration , RegionStack & rstack, id_type obj_access);
490 string m_qid (pIIR_InterfaceDeclaration , RegionStack & rstack, id_type obj_access);
491 string m_qid (pIIR_SignalDeclaration , RegionStack & rstack, id_type obj_access);
492 string m_qid (pIIR_Declaration , RegionStack & rstack, id_type obj_access);
493 string m_qid (pIIR_LibraryUnit , RegionStack & rstack, id_type obj_access);
494 string m_get_type_info_obj (pIIR_RecordType , RegionStack & rstack, bool static_object);
495 string m_get_type_info_obj (pIIR_FileType , RegionStack & rstack, bool static_object);
496 string m_get_type_info_obj (pIIR_AccessType , RegionStack & rstack, bool static_object);
497 string m_get_type_info_obj (pIIR_ArraySubtype , RegionStack & rstack, bool static_object);
498 string m_get_type_info_obj (pIIR_ArrayType , RegionStack & rstack, bool static_object);
499 string m_get_type_info_obj (pIIR_Subtype , RegionStack & rstack, bool static_object);
500 string m_get_type_info_obj (pIIR_RecordSubtype , RegionStack & rstack, bool static_object);
501 string m_get_type_info_obj (pIIR_ScalarSubtype , RegionStack & rstack, bool static_object);
502 string m_get_type_info_obj (pIIR_FloatingType , RegionStack & rstack, bool static_object);
503 string m_get_type_info_obj (pIIR_PhysicalType , RegionStack & rstack, bool static_object);
504 string m_get_type_info_obj (pIIR_IntegerType , RegionStack & rstack, bool static_object);
505 string m_get_type_info_obj (pIIR_EnumerationType , RegionStack & rstack, bool static_object);
506 vector<RangeDescriptor> m_get_discrete_range (pIIR_Attr_ArrayREVERSE_RANGE , RegionStack & rstack, IR_StaticLevel slevel);
507 vector<RangeDescriptor> m_get_discrete_range (pIIR_Attr_ArrayRANGE , RegionStack & rstack, IR_StaticLevel slevel);
508 vector<RangeDescriptor> m_get_discrete_range (pIIR_ArraySubtype , RegionStack & rstack, IR_StaticLevel slevel);
509 vector<RangeDescriptor> m_get_discrete_range (pIIR_ArrayType , RegionStack & rstack, IR_StaticLevel slevel);
510 vector<RangeDescriptor> m_get_discrete_range (pIIR_SliceReference , RegionStack & rstack, IR_StaticLevel slevel);
511 vector<RangeDescriptor> m_get_discrete_range (pIIR_ExplicitRange , RegionStack & rstack, IR_StaticLevel slevel);
512 vector<RangeDescriptor> m_get_discrete_range (pIIR_ScalarSubtype , RegionStack & rstack, IR_StaticLevel slevel);
513 vector<RangeDescriptor> m_get_discrete_range (pIIR_FloatingType , RegionStack & rstack, IR_StaticLevel slevel);
514 vector<RangeDescriptor> m_get_discrete_range (pIIR_PhysicalType , RegionStack & rstack, IR_StaticLevel slevel);
515 vector<RangeDescriptor> m_get_discrete_range (pIIR_IntegerType , RegionStack & rstack, IR_StaticLevel slevel);
516 vector<RangeDescriptor> m_get_discrete_range (pIIR_EnumerationType , RegionStack & rstack, IR_StaticLevel slevel);
517 IR_StaticLevel m_get_static_level (pIIR_Expression , RegionStack & rstack);
518 IR_StaticLevel m_get_static_level (pIIR_Type , RegionStack & rstack);
519 int m_constant_fold (pIIR_Allocator , RegionStack & rstack);
520 int m_constant_fold (pIIR_QualifiedExpression , RegionStack & rstack);
521 int m_constant_fold (pIIR_PhysicalUnit , RegionStack & rstack);
522 int m_constant_fold (pIIR_EnumerationLiteral , RegionStack & rstack);
523 int m_constant_fold (pIIR_PhysicalLiteral , RegionStack & rstack);
524 int m_constant_fold (pIIR_AbstractLiteralExpression , RegionStack & rstack);
525 int m_constant_fold (pIIR_IntegerLiteral , RegionStack & rstack);
526 int m_constant_fold (pIIR_FloatingPointLiteral , RegionStack & rstack);
527 int m_constant_fold (pIIR_RecordAggregate , RegionStack & rstack);
528 int m_constant_fold (pIIR_ArrayAggregate , RegionStack & rstack);
529 int m_constant_fold (pIIR_ExpressionList , RegionStack & rstack);
530 int m_constant_fold (pIIR_TypeConversion , RegionStack & rstack);
531 int m_constant_fold (pIIR_Expression , RegionStack & rstack);
532 int m_constant_fold (pIIR_RecordReference , RegionStack & rstack);
533 int m_constant_fold (pIIR_SliceReference , RegionStack & rstack);
534 int m_constant_fold (pIIR_SliceIndexedAssociation , RegionStack & rstack);
535 int m_constant_fold (pIIR_RangeIndexedAssociation , RegionStack & rstack);
536 int m_constant_fold (pIIR_SingleIndexedAssociation , RegionStack & rstack);
537 int m_constant_fold (pIIR_OthersIndexedAssociation , RegionStack & rstack);
538 int m_constant_fold (pIIR_ExplicitRange , RegionStack & rstack);
539 int m_constant_fold (pIIR_AttrTypeValue , RegionStack & rstack);
540 int m_constant_fold (pIIR_AttrTypeFunc , RegionStack & rstack);
541 int m_constant_fold (pIIR_AttrArrayFunc , RegionStack & rstack);
542 int m_constant_fold (pIIR_ArrayRange , RegionStack & rstack);
543 int m_constant_fold (pIIR_ArrayReference , RegionStack & rstack);
544 int m_constant_fold (pIIR_SimpleReference , RegionStack & rstack);
545 int m_constant_fold (pIIR_FunctionCall , RegionStack & rstack);
546 int m_constant_fold (pIIR_EnumLiteralReference , RegionStack & rstack);
547 int m_constant_fold (pIIR_ArrayLiteralExpression , RegionStack & rstack);
548 int m_constant_fold (pIIR_AttrSigFunc , RegionStack & rstack);
549 int m_constant_fold (pIIR_ArraySubtype , RegionStack & rstack);
550 int m_constant_fold (pIIR_ArrayType , RegionStack & rstack);
551 int m_constant_fold (pIIR_ScalarSubtype , RegionStack & rstack);
552 int m_constant_fold (pIIR_PhysicalType , RegionStack & rstack);
553 int m_constant_fold (pIIR_Type , RegionStack & rstack);
554 void m_optimize (pIIR_ConcurrentGenerateForStatement , RegionStack & rstack);
555 void m_optimize (pIIR_ConcurrentGenerateIfStatement , RegionStack & rstack);
556 void m_optimize (pIIR_ComponentInstantiationStatement , RegionStack & rstack);
557 void m_optimize (pIIR_ComponentDeclaration , RegionStack & rstack);
558 void m_optimize (pIIR_ConfigurationDeclaration , RegionStack & rstack);
559 void m_optimize (pIIR_PackageBodyDeclaration , RegionStack & rstack);
560 void m_optimize (pIIR_PackageDeclaration , RegionStack & rstack);
561 void m_optimize (pIIR_ProcessStatement , RegionStack & rstack);
562 void m_optimize (pIIR_ConcurrentStatementList , RegionStack & rstack);
563 void m_optimize (pIIR_ArchitectureDeclaration , RegionStack & rstack);
564 void m_optimize (pIIR_Type , RegionStack & rstack);
565 void m_optimize (pIIR_EntityDeclaration , RegionStack & rstack);
566 void m_optimize (pIIR_SubprogramDeclaration , RegionStack & rstack);
567 void m_optimize (pIIR_PredefinedFunctionDeclaration , RegionStack & rstack);
568 
569 struct v2cc_IIR_Declaration_ext : tree_prop {
570   v2cc_IIR_Declaration_ext ();
571   tree_prop_info *get_info ();
572   RuntimeCheckFlags runtime_checks;
573 };
574 
575 struct v2cc_IIR_Declaration_ext *get_v2cc_ext (pIIR_Declaration n);
runtime_checks(pIIR_Declaration n)576 static inline RuntimeCheckFlags& runtime_checks (pIIR_Declaration n) { return get_v2cc_ext (n)->runtime_checks; }
577 
578 struct v2cc_IIR_Root_ext : tree_prop {
579   v2cc_IIR_Root_ext ();
580   tree_prop_info *get_info ();
581   pIIR_DeclarativeRegion static_declarative_region;
582   int done;
583 };
584 
585 struct v2cc_IIR_Root_ext *get_v2cc_ext (pIIR_Root n);
static_declarative_region(pIIR_Root n)586 static inline pIIR_DeclarativeRegion& static_declarative_region (pIIR_Root n) { return get_v2cc_ext (n)->static_declarative_region; }
done(pIIR_Root n)587 static inline int& done (pIIR_Root n) { return get_v2cc_ext (n)->done; }
588 
589 struct v2cc_IIR_LibraryUnit_ext : tree_prop {
590   v2cc_IIR_LibraryUnit_ext ();
591   tree_prop_info *get_info ();
592   bool generate_code;
593 };
594 
595 struct v2cc_IIR_LibraryUnit_ext *get_v2cc_ext (pIIR_LibraryUnit n);
generate_code(pIIR_LibraryUnit n)596 static inline bool& generate_code (pIIR_LibraryUnit n) { return get_v2cc_ext (n)->generate_code; }
597 
598 struct v2cc_IIR_Expression_ext : tree_prop {
599   v2cc_IIR_Expression_ext ();
600   tree_prop_info *get_info ();
601   RuntimeCheckFlags runtime_checks;
602   bool valid_folded_value;
603   StaticDataType folded_value;
604 };
605 
606 struct v2cc_IIR_Expression_ext *get_v2cc_ext (pIIR_Expression n);
runtime_checks(pIIR_Expression n)607 static inline RuntimeCheckFlags& runtime_checks (pIIR_Expression n) { return get_v2cc_ext (n)->runtime_checks; }
valid_folded_value(pIIR_Expression n)608 static inline bool& valid_folded_value (pIIR_Expression n) { return get_v2cc_ext (n)->valid_folded_value; }
folded_value(pIIR_Expression n)609 static inline StaticDataType& folded_value (pIIR_Expression n) { return get_v2cc_ext (n)->folded_value; }
610 
611 struct v2cc_IIR_Literal_ext : tree_prop {
612   v2cc_IIR_Literal_ext ();
613   tree_prop_info *get_info ();
614   bool valid_folded_value;
615   StaticDataType folded_value;
616 };
617 
618 struct v2cc_IIR_Literal_ext *get_v2cc_ext (pIIR_Literal n);
valid_folded_value(pIIR_Literal n)619 static inline bool& valid_folded_value (pIIR_Literal n) { return get_v2cc_ext (n)->valid_folded_value; }
folded_value(pIIR_Literal n)620 static inline StaticDataType& folded_value (pIIR_Literal n) { return get_v2cc_ext (n)->folded_value; }
621 
622 struct v2cc_IIR_EnumerationLiteral_ext : tree_prop {
623   v2cc_IIR_EnumerationLiteral_ext ();
624   tree_prop_info *get_info ();
625   bool valid_folded_value;
626   StaticDataType folded_value;
627 };
628 
629 struct v2cc_IIR_EnumerationLiteral_ext *get_v2cc_ext (pIIR_EnumerationLiteral n);
valid_folded_value(pIIR_EnumerationLiteral n)630 static inline bool& valid_folded_value (pIIR_EnumerationLiteral n) { return get_v2cc_ext (n)->valid_folded_value; }
folded_value(pIIR_EnumerationLiteral n)631 static inline StaticDataType& folded_value (pIIR_EnumerationLiteral n) { return get_v2cc_ext (n)->folded_value; }
632 
633 struct v2cc_IIR_PhysicalUnit_ext : tree_prop {
634   v2cc_IIR_PhysicalUnit_ext ();
635   tree_prop_info *get_info ();
636   bool valid_folded_value;
637   StaticDataType folded_value;
638 };
639 
640 struct v2cc_IIR_PhysicalUnit_ext *get_v2cc_ext (pIIR_PhysicalUnit n);
valid_folded_value(pIIR_PhysicalUnit n)641 static inline bool& valid_folded_value (pIIR_PhysicalUnit n) { return get_v2cc_ext (n)->valid_folded_value; }
folded_value(pIIR_PhysicalUnit n)642 static inline StaticDataType& folded_value (pIIR_PhysicalUnit n) { return get_v2cc_ext (n)->folded_value; }
643 
644 struct v2cc_IIR_Type_ext : tree_prop {
645   v2cc_IIR_Type_ext ();
646   tree_prop_info *get_info ();
647   RuntimeCheckFlags runtime_checks;
648 };
649 
650 struct v2cc_IIR_Type_ext *get_v2cc_ext (pIIR_Type n);
runtime_checks(pIIR_Type n)651 static inline RuntimeCheckFlags& runtime_checks (pIIR_Type n) { return get_v2cc_ext (n)->runtime_checks; }
652 
653 struct v2cc_IIR_Subtype_ext : tree_prop {
654   v2cc_IIR_Subtype_ext ();
655   tree_prop_info *get_info ();
656   pV2CC_ImplicitSubtypeDeclaration implicit_subtype_declaration;
657 };
658 
659 struct v2cc_IIR_Subtype_ext *get_v2cc_ext (pIIR_Subtype n);
implicit_subtype_declaration(pIIR_Subtype n)660 static inline pV2CC_ImplicitSubtypeDeclaration& implicit_subtype_declaration (pIIR_Subtype n) { return get_v2cc_ext (n)->implicit_subtype_declaration; }
661 
662 struct v2cc_IIR_WaitStatement_ext : tree_prop {
663   v2cc_IIR_WaitStatement_ext ();
664   tree_prop_info *get_info ();
665   int wait_info_index;
666 };
667 
668 struct v2cc_IIR_WaitStatement_ext *get_v2cc_ext (pIIR_WaitStatement n);
wait_info_index(pIIR_WaitStatement n)669 static inline int& wait_info_index (pIIR_WaitStatement n) { return get_v2cc_ext (n)->wait_info_index; }
670 
671 struct v2cc_IIR_ProcedureCallStatement_ext : tree_prop {
672   v2cc_IIR_ProcedureCallStatement_ext ();
673   tree_prop_info *get_info ();
674   int wait_info_index;
675 };
676 
677 struct v2cc_IIR_ProcedureCallStatement_ext *get_v2cc_ext (pIIR_ProcedureCallStatement n);
wait_info_index(pIIR_ProcedureCallStatement n)678 static inline int& wait_info_index (pIIR_ProcedureCallStatement n) { return get_v2cc_ext (n)->wait_info_index; }
679 
680 struct v2cc_IIR_DeclarativeRegion_ext : tree_prop {
681   v2cc_IIR_DeclarativeRegion_ext ();
682   tree_prop_info *get_info ();
683   pIIR_DeclarationList extended_declarations;
684   ContextInfo context;
685 };
686 
687 struct v2cc_IIR_DeclarativeRegion_ext *get_v2cc_ext (pIIR_DeclarativeRegion n);
extended_declarations(pIIR_DeclarativeRegion n)688 static inline pIIR_DeclarationList& extended_declarations (pIIR_DeclarativeRegion n) { return get_v2cc_ext (n)->extended_declarations; }
context(pIIR_DeclarativeRegion n)689 static inline ContextInfo& context (pIIR_DeclarativeRegion n) { return get_v2cc_ext (n)->context; }
690 
691 struct v2cc_IIR_EntityDeclaration_ext : tree_prop {
692   v2cc_IIR_EntityDeclaration_ext ();
693   tree_prop_info *get_info ();
694   pIIR_DeclarationList extended_port_clause;
695   pIIR_DeclarationList extended_generic_clause;
696 };
697 
698 struct v2cc_IIR_EntityDeclaration_ext *get_v2cc_ext (pIIR_EntityDeclaration n);
extended_port_clause(pIIR_EntityDeclaration n)699 static inline pIIR_DeclarationList& extended_port_clause (pIIR_EntityDeclaration n) { return get_v2cc_ext (n)->extended_port_clause; }
extended_generic_clause(pIIR_EntityDeclaration n)700 static inline pIIR_DeclarationList& extended_generic_clause (pIIR_EntityDeclaration n) { return get_v2cc_ext (n)->extended_generic_clause; }
701 
702 struct v2cc_IIR_SubprogramDeclaration_ext : tree_prop {
703   v2cc_IIR_SubprogramDeclaration_ext ();
704   tree_prop_info *get_info ();
705   pIIR_DeclarationList extended_interface_declarations;
706 };
707 
708 struct v2cc_IIR_SubprogramDeclaration_ext *get_v2cc_ext (pIIR_SubprogramDeclaration n);
extended_interface_declarations(pIIR_SubprogramDeclaration n)709 static inline pIIR_DeclarationList& extended_interface_declarations (pIIR_SubprogramDeclaration n) { return get_v2cc_ext (n)->extended_interface_declarations; }
710 
711 struct v2cc_IIR_ConcurrentStatement_ext : tree_prop {
712   v2cc_IIR_ConcurrentStatement_ext ();
713   tree_prop_info *get_info ();
714   pIIR_DeclarationList extended_interface_declarations;
715 };
716 
717 struct v2cc_IIR_ConcurrentStatement_ext *get_v2cc_ext (pIIR_ConcurrentStatement n);
extended_interface_declarations(pIIR_ConcurrentStatement n)718 static inline pIIR_DeclarationList& extended_interface_declarations (pIIR_ConcurrentStatement n) { return get_v2cc_ext (n)->extended_interface_declarations; }
719 
720 struct v2cc_IIR_BlockStatement_ext : tree_prop {
721   v2cc_IIR_BlockStatement_ext ();
722   tree_prop_info *get_info ();
723   pIIR_DeclarationList extended_port_clause;
724   pIIR_DeclarationList extended_generic_clause;
725 };
726 
727 struct v2cc_IIR_BlockStatement_ext *get_v2cc_ext (pIIR_BlockStatement n);
extended_port_clause(pIIR_BlockStatement n)728 static inline pIIR_DeclarationList& extended_port_clause (pIIR_BlockStatement n) { return get_v2cc_ext (n)->extended_port_clause; }
extended_generic_clause(pIIR_BlockStatement n)729 static inline pIIR_DeclarationList& extended_generic_clause (pIIR_BlockStatement n) { return get_v2cc_ext (n)->extended_generic_clause; }
730 
731 struct v2cc_IIR_ArrayAggregate_ext : tree_prop {
732   v2cc_IIR_ArrayAggregate_ext ();
733   tree_prop_info *get_info ();
734   int max_index;
735   int min_index;
736   int total_length;
737   bool locally_static_ranges;
738   bool has_others;
739   bool known_subtype;
740   bool named_association;
741   IR_Direction dest_direction;
742   int dest_right;
743   int dest_left;
744   int dest_length;
745 };
746 
747 struct v2cc_IIR_ArrayAggregate_ext *get_v2cc_ext (pIIR_ArrayAggregate n);
max_index(pIIR_ArrayAggregate n)748 static inline int& max_index (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->max_index; }
min_index(pIIR_ArrayAggregate n)749 static inline int& min_index (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->min_index; }
total_length(pIIR_ArrayAggregate n)750 static inline int& total_length (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->total_length; }
locally_static_ranges(pIIR_ArrayAggregate n)751 static inline bool& locally_static_ranges (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->locally_static_ranges; }
has_others(pIIR_ArrayAggregate n)752 static inline bool& has_others (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->has_others; }
known_subtype(pIIR_ArrayAggregate n)753 static inline bool& known_subtype (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->known_subtype; }
named_association(pIIR_ArrayAggregate n)754 static inline bool& named_association (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->named_association; }
dest_direction(pIIR_ArrayAggregate n)755 static inline IR_Direction& dest_direction (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->dest_direction; }
dest_right(pIIR_ArrayAggregate n)756 static inline int& dest_right (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->dest_right; }
dest_left(pIIR_ArrayAggregate n)757 static inline int& dest_left (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->dest_left; }
dest_length(pIIR_ArrayAggregate n)758 static inline int& dest_length (pIIR_ArrayAggregate n) { return get_v2cc_ext (n)->dest_length; }
759 
760 struct v2cc_IIR_IndexedAssociation_ext : tree_prop {
761   v2cc_IIR_IndexedAssociation_ext ();
762   tree_prop_info *get_info ();
763   int max_index;
764   int min_index;
765   int length;
766   bool locally_static_range;
767 };
768 
769 struct v2cc_IIR_IndexedAssociation_ext *get_v2cc_ext (pIIR_IndexedAssociation n);
max_index(pIIR_IndexedAssociation n)770 static inline int& max_index (pIIR_IndexedAssociation n) { return get_v2cc_ext (n)->max_index; }
min_index(pIIR_IndexedAssociation n)771 static inline int& min_index (pIIR_IndexedAssociation n) { return get_v2cc_ext (n)->min_index; }
length(pIIR_IndexedAssociation n)772 static inline int& length (pIIR_IndexedAssociation n) { return get_v2cc_ext (n)->length; }
locally_static_range(pIIR_IndexedAssociation n)773 static inline bool& locally_static_range (pIIR_IndexedAssociation n) { return get_v2cc_ext (n)->locally_static_range; }
774 
775 struct v2cc_IIR_EnumerationType_ext : tree_prop {
776   v2cc_IIR_EnumerationType_ext ();
777   tree_prop_info *get_info ();
778   int enum_item_number;
779 };
780 
781 struct v2cc_IIR_EnumerationType_ext *get_v2cc_ext (pIIR_EnumerationType n);
enum_item_number(pIIR_EnumerationType n)782 static inline int& enum_item_number (pIIR_EnumerationType n) { return get_v2cc_ext (n)->enum_item_number; }
783 
784 struct v2cc_IIR_ObjectDeclaration_ext : tree_prop {
785   v2cc_IIR_ObjectDeclaration_ext ();
786   tree_prop_info *get_info ();
787   bool alias_check_bounds;
788 };
789 
790 struct v2cc_IIR_ObjectDeclaration_ext *get_v2cc_ext (pIIR_ObjectDeclaration n);
alias_check_bounds(pIIR_ObjectDeclaration n)791 static inline bool& alias_check_bounds (pIIR_ObjectDeclaration n) { return get_v2cc_ext (n)->alias_check_bounds; }
792 
793 struct v2cc_IIR_LoopStatement_ext : tree_prop {
794   v2cc_IIR_LoopStatement_ext ();
795   tree_prop_info *get_info ();
796   int loop_id;
797   bool exit_statement_used;
798   bool next_statement_used;
799 };
800 
801 struct v2cc_IIR_LoopStatement_ext *get_v2cc_ext (pIIR_LoopStatement n);
loop_id(pIIR_LoopStatement n)802 static inline int& loop_id (pIIR_LoopStatement n) { return get_v2cc_ext (n)->loop_id; }
exit_statement_used(pIIR_LoopStatement n)803 static inline bool& exit_statement_used (pIIR_LoopStatement n) { return get_v2cc_ext (n)->exit_statement_used; }
next_statement_used(pIIR_LoopStatement n)804 static inline bool& next_statement_used (pIIR_LoopStatement n) { return get_v2cc_ext (n)->next_statement_used; }
805 
806 struct v2cc_IIR_ProcessStatement_ext : tree_prop {
807   v2cc_IIR_ProcessStatement_ext ();
808   tree_prop_info *get_info ();
809   bool has_wait_for;
810   bool has_wait;
811 };
812 
813 struct v2cc_IIR_ProcessStatement_ext *get_v2cc_ext (pIIR_ProcessStatement n);
has_wait_for(pIIR_ProcessStatement n)814 static inline bool& has_wait_for (pIIR_ProcessStatement n) { return get_v2cc_ext (n)->has_wait_for; }
has_wait(pIIR_ProcessStatement n)815 static inline bool& has_wait (pIIR_ProcessStatement n) { return get_v2cc_ext (n)->has_wait; }
816 
817 struct v2cc_IIR_ProcedureDeclaration_ext : tree_prop {
818   v2cc_IIR_ProcedureDeclaration_ext ();
819   tree_prop_info *get_info ();
820   bool has_wait_for;
821   bool has_wait;
822 };
823 
824 struct v2cc_IIR_ProcedureDeclaration_ext *get_v2cc_ext (pIIR_ProcedureDeclaration n);
has_wait_for(pIIR_ProcedureDeclaration n)825 static inline bool& has_wait_for (pIIR_ProcedureDeclaration n) { return get_v2cc_ext (n)->has_wait_for; }
has_wait(pIIR_ProcedureDeclaration n)826 static inline bool& has_wait (pIIR_ProcedureDeclaration n) { return get_v2cc_ext (n)->has_wait; }
827 
828 void init_v2cc_chunk ();
829 
830 #endif
831