PIPS
sac_private.h
Go to the documentation of this file.
1 #ifndef _newgen_sac_private_included
2 #define _newgen_sac_private_included
3 #define _gen_sac_private_start 177
4 /*
5  * THIS FILE HAS BEEN AUTOMATICALLY GENERATED BY NEWGEN.
6  *
7  * PLEASE DO NOT MODIFY IT.
8  */
9 
10 #if !defined(_newgen_entity_domain_defined_)
11 #define _newgen_entity_domain_defined_
12 #define ENTITY_NEWGEN_DOMAIN (entity_domain)
13 #define entity_NEWGEN_DOMAIN (entity_domain)
14 typedef struct _newgen_struct_entity_ * entity;
15 #endif /* _newgen_entity_domain_defined_ */
16 
17 #if !defined(_newgen_expression_domain_defined_)
18 #define _newgen_expression_domain_defined_
19 #define EXPRESSION_NEWGEN_DOMAIN (expression_domain)
20 #define expression_NEWGEN_DOMAIN (expression_domain)
22 #endif /* _newgen_expression_domain_defined_ */
23 
24 #if !defined(_newgen_statement_domain_defined_)
25 #define _newgen_statement_domain_defined_
26 #define STATEMENT_NEWGEN_DOMAIN (statement_domain)
27 #define statement_NEWGEN_DOMAIN (statement_domain)
29 #endif /* _newgen_statement_domain_defined_ */
30 
31 #if !defined(_newgen_reference_domain_defined_)
32 #define _newgen_reference_domain_defined_
33 #define REFERENCE_NEWGEN_DOMAIN (reference_domain)
34 #define reference_NEWGEN_DOMAIN (reference_domain)
36 #endif /* _newgen_reference_domain_defined_ */
37 
38 #if !defined(_newgen_reduction_domain_defined_)
39 #define _newgen_reduction_domain_defined_
40 #define REDUCTION_NEWGEN_DOMAIN (reduction_domain)
41 #define reduction_NEWGEN_DOMAIN (reduction_domain)
43 #endif /* _newgen_reduction_domain_defined_ */
44 
45 #if !defined(_newgen_operator_id_sons_domain_defined_)
46 #define _newgen_operator_id_sons_domain_defined_
47 #define newgen_operator_id_sons(p) (p) /* old hack compatible */
48 #define OPERATOR_ID_SONS_NEWGEN_EXTERNAL (_gen_sac_private_start+0)
49 #define OPERATOR_ID_SONS_NEWGEN_DOMAIN (OPERATOR_ID_SONS_NEWGEN_EXTERNAL)
50 #define operator_id_sons_NEWGEN_DOMAIN (OPERATOR_ID_SONS_NEWGEN_EXTERNAL)
51 #endif /* _newgen_operator_id_sons_domain_defined_ */
52 
53 #define matchTree_domain (_gen_sac_private_start+1)
54 #if !defined(_newgen_matchTree_domain_defined_)
55 #define _newgen_matchTree_domain_defined_
56 #define MATCHTREE_NEWGEN_DOMAIN (matchTree_domain)
57 #define matchTree_NEWGEN_DOMAIN (matchTree_domain)
59 #endif /* _newgen_matchTree_domain_defined_ */
60 
61 #define matchTreeSons_domain (_gen_sac_private_start+2)
62 #if !defined(_newgen_matchTreeSons_domain_defined_)
63 #define _newgen_matchTreeSons_domain_defined_
64 #define MATCHTREESONS_NEWGEN_DOMAIN (matchTreeSons_domain)
65 #define matchTreeSons_NEWGEN_DOMAIN (matchTreeSons_domain)
67 #endif /* _newgen_matchTreeSons_domain_defined_ */
68 
69 #define match_domain (_gen_sac_private_start+3)
70 #if !defined(_newgen_match_domain_defined_)
71 #define _newgen_match_domain_defined_
72 #define MATCH_NEWGEN_DOMAIN (match_domain)
73 #define match_NEWGEN_DOMAIN (match_domain)
74 typedef struct _newgen_struct_match_ * match;
75 #endif /* _newgen_match_domain_defined_ */
76 
77 #define opcode_domain (_gen_sac_private_start+4)
78 #if !defined(_newgen_opcode_domain_defined_)
79 #define _newgen_opcode_domain_defined_
80 #define OPCODE_NEWGEN_DOMAIN (opcode_domain)
81 #define opcode_NEWGEN_DOMAIN (opcode_domain)
82 typedef struct _newgen_struct_opcode_ * opcode;
83 #endif /* _newgen_opcode_domain_defined_ */
84 
85 #define operator_id_tree_domain (_gen_sac_private_start+5)
86 #if !defined(_newgen_operator_id_tree_domain_defined_)
87 #define _newgen_operator_id_tree_domain_defined_
88 #define OPERATOR_ID_TREE_NEWGEN_DOMAIN (operator_id_tree_domain)
89 #define operator_id_tree_NEWGEN_DOMAIN (operator_id_tree_domain)
91 #endif /* _newgen_operator_id_tree_domain_defined_ */
92 
93 #define patternArg_domain (_gen_sac_private_start+6)
94 #if !defined(_newgen_patternArg_domain_defined_)
95 #define _newgen_patternArg_domain_defined_
96 #define PATTERNARG_NEWGEN_DOMAIN (patternArg_domain)
97 #define patternArg_NEWGEN_DOMAIN (patternArg_domain)
99 #endif /* _newgen_patternArg_domain_defined_ */
100 
101 #define patternx_domain (_gen_sac_private_start+7)
102 #if !defined(_newgen_patternx_domain_defined_)
103 #define _newgen_patternx_domain_defined_
104 #define PATTERNX_NEWGEN_DOMAIN (patternx_domain)
105 #define patternx_NEWGEN_DOMAIN (patternx_domain)
107 #endif /* _newgen_patternx_domain_defined_ */
108 
109 #define reductionInfo_domain (_gen_sac_private_start+8)
110 #if !defined(_newgen_reductionInfo_domain_defined_)
111 #define _newgen_reductionInfo_domain_defined_
112 #define REDUCTIONINFO_NEWGEN_DOMAIN (reductionInfo_domain)
113 #define reductionInfo_NEWGEN_DOMAIN (reductionInfo_domain)
115 #endif /* _newgen_reductionInfo_domain_defined_ */
116 
117 #define simdstatement_domain (_gen_sac_private_start+9)
118 #if !defined(_newgen_simdstatement_domain_defined_)
119 #define _newgen_simdstatement_domain_defined_
120 #define SIMDSTATEMENT_NEWGEN_DOMAIN (simdstatement_domain)
121 #define simdstatement_NEWGEN_DOMAIN (simdstatement_domain)
123 #endif /* _newgen_simdstatement_domain_defined_ */
124 
125 #define opcodeClass_domain (_gen_sac_private_start+10)
126 #if !defined(_newgen_opcodeClass_domain_defined_)
127 #define _newgen_opcodeClass_domain_defined_
128 #define OPCODECLASS_NEWGEN_DOMAIN (opcodeClass_domain)
129 #define opcodeClass_NEWGEN_DOMAIN (opcodeClass_domain)
131 #endif /* _newgen_opcodeClass_domain_defined_ */
132 
133 #define transformation_domain (_gen_sac_private_start+11)
134 #if !defined(_newgen_transformation_domain_defined_)
135 #define _newgen_transformation_domain_defined_
136 #define TRANSFORMATION_NEWGEN_DOMAIN (transformation_domain)
137 #define transformation_NEWGEN_DOMAIN (transformation_domain)
139 #endif /* _newgen_transformation_domain_defined_ */
140 
141 
142 /* MATCHTREE
143  */
144 #define MATCHTREE(x) ((matchTree)((x).p))
145 #define matchTree_CAST(x) MATCHTREE(x)
146 #define MATCHTREE_CAST(x) MATCHTREE(x)
147 #define MATCHTREE_(x) ((x).e)
148 #define MATCHTREE_TYPE matchTree
149 #define matchTree_TYPE matchTree
150 #define matchTree_undefined ((matchTree)gen_chunk_undefined)
151 #define matchTree_undefined_p(x) ((x)==matchTree_undefined)
152 
154 extern void free_matchTree(matchTree);
156 extern bool matchTree_consistent_p(matchTree);
157 extern bool matchTree_defined_p(matchTree);
158 #define gen_MATCHTREE_cons gen_matchTree_cons
162 extern void write_matchTree(FILE*, matchTree);
163 extern matchTree read_matchTree(FILE*);
165 
168  list _matchTree_patterns_; /* patterns:patternx* */
169  matchTreeSons _matchTree_sons_; /* sons:matchTreeSons */
170 };
171 
172 #define matchTree_domain_number(x) ((x)->_type_)
173 #define matchTree_patterns_(x) matchTree_patterns(x) /* old hack compatible */
174 #define matchTree_patterns(x) ((x)->_matchTree_patterns_)
175 #define matchTree_sons_(x) matchTree_sons(x) /* old hack compatible */
176 #define matchTree_sons(x) ((x)->_matchTree_sons_)
177 
178 /* MATCHTREESONS
179  */
180 #define MATCHTREESONS(x) ((matchTreeSons)((x).p))
181 #define matchTreeSons_CAST(x) MATCHTREESONS(x)
182 #define MATCHTREESONS_CAST(x) MATCHTREESONS(x)
183 #define MATCHTREESONS_(x) ((x).e)
184 #define MATCHTREESONS_TYPE matchTreeSons
185 #define matchTreeSons_TYPE matchTreeSons
186 #define matchTreeSons_undefined ((matchTreeSons)gen_chunk_undefined)
187 #define matchTreeSons_undefined_p(x) ((x)==matchTreeSons_undefined)
188 
190 extern void free_matchTreeSons(matchTreeSons);
194 #define gen_MATCHTREESONS_cons gen_matchTreeSons_cons
198 extern void write_matchTreeSons(FILE*, matchTreeSons);
199 extern matchTreeSons read_matchTreeSons(FILE*);
200 extern matchTreeSons make_matchTreeSons(void);
201 
205 };
206 
207 #define matchTreeSons_domain_number(x) ((x)->_type_)
208 #define matchTreeSons_hash_table(x) ((x)->_matchTreeSons_holder_)
209 #define matchTreeSons_key_type intptr_t
210 #define matchTreeSons_value_type matchTree
211 #define MATCHTREESONS_MAP(k,v,c,f) FUNCTION_MAP(matchTreeSons,i,p,k,v,c,f)
212 #define MATCHTREESONS_FOREACH(k,v,f) FUNCTION_FOREACH(matchTreeSons,i,p,k,v,f)
218 
219 /* MATCH
220  */
221 #define MATCH(x) ((match)((x).p))
222 #define match_CAST(x) MATCH(x)
223 #define MATCH_CAST(x) MATCH(x)
224 #define MATCH_(x) ((x).e)
225 #define MATCH_TYPE match
226 #define match_TYPE match
227 #define match_undefined ((match)gen_chunk_undefined)
228 #define match_undefined_p(x) ((x)==match_undefined)
229 
230 extern match copy_match(match);
231 extern void free_match(match);
232 extern match check_match(match);
233 extern bool match_consistent_p(match);
234 extern bool match_defined_p(match);
235 #define gen_MATCH_cons gen_match_cons
236 extern list gen_match_cons(match, list);
237 extern void match_assign_contents(match, match);
238 extern void match_non_recursive_free(match);
239 extern void write_match(FILE*, match);
240 extern match read_match(FILE*);
242 
245  opcodeClass _match_type_; /* type:opcodeClass */
246  list _match_args_; /* args:expression* */
247 };
248 
249 #define match_domain_number(x) ((x)->_type_)
250 #define match_type_(x) match_type(x) /* old hack compatible */
251 #define match_type(x) ((x)->_match_type_)
252 #define match_args_(x) match_args(x) /* old hack compatible */
253 #define match_args(x) ((x)->_match_args_)
254 
255 /* OPCODE
256  */
257 #define OPCODE(x) ((opcode)((x).p))
258 #define opcode_CAST(x) OPCODE(x)
259 #define OPCODE_CAST(x) OPCODE(x)
260 #define OPCODE_(x) ((x).e)
261 #define OPCODE_TYPE opcode
262 #define opcode_TYPE opcode
263 #define opcode_undefined ((opcode)gen_chunk_undefined)
264 #define opcode_undefined_p(x) ((x)==opcode_undefined)
265 
266 extern opcode copy_opcode(opcode);
267 extern void free_opcode(opcode);
268 extern opcode check_opcode(opcode);
269 extern bool opcode_consistent_p(opcode);
270 extern bool opcode_defined_p(opcode);
271 #define gen_OPCODE_cons gen_opcode_cons
273 extern void opcode_assign_contents(opcode, opcode);
274 extern void opcode_non_recursive_free(opcode);
275 extern void write_opcode(FILE*, opcode);
276 extern opcode read_opcode(FILE*);
277 extern opcode make_opcode(string, intptr_t, list, float);
278 
281  string _opcode_name_; /* name:string */
282  intptr_t _opcode_vectorSize_; /* vectorSize:int */
283  list _opcode_argType_; /* argType:int* */
284  gen_chunk _opcode_cost_; /* cost:float */
285 };
286 
287 #define opcode_domain_number(x) ((x)->_type_)
288 #define opcode_name_(x) opcode_name(x) /* old hack compatible */
289 #define opcode_name(x) ((x)->_opcode_name_)
290 #define opcode_vectorSize_(x) opcode_vectorSize(x) /* old hack compatible */
291 #define opcode_vectorSize(x) ((x)->_opcode_vectorSize_)
292 #define opcode_argType_(x) opcode_argType(x) /* old hack compatible */
293 #define opcode_argType(x) ((x)->_opcode_argType_)
294 #define opcode_cost_(x) opcode_cost(x) /* old hack compatible */
295 #define opcode_cost(x) ((x)->_opcode_cost_.f)
296 
297 /* OPERATOR_ID_TREE
298  */
299 #define OPERATOR_ID_TREE(x) ((operator_id_tree)((x).p))
300 #define operator_id_tree_CAST(x) OPERATOR_ID_TREE(x)
301 #define OPERATOR_ID_TREE_CAST(x) OPERATOR_ID_TREE(x)
302 #define OPERATOR_ID_TREE_(x) ((x).e)
303 #define OPERATOR_ID_TREE_TYPE operator_id_tree
304 #define operator_id_tree_TYPE operator_id_tree
305 #define operator_id_tree_undefined ((operator_id_tree)gen_chunk_undefined)
306 #define operator_id_tree_undefined_p(x) ((x)==operator_id_tree_undefined)
307 
313 #define gen_OPERATOR_ID_TREE_cons gen_operator_id_tree_cons
317 extern void write_operator_id_tree(FILE*, operator_id_tree);
320 
324  operator_id_sons _operator_id_tree_sons_; /* sons:operator_id_sons */
325 };
326 
327 #define operator_id_tree_domain_number(x) ((x)->_type_)
328 #define operator_id_tree_id_(x) operator_id_tree_id(x) /* old hack compatible */
329 #define operator_id_tree_id(x) ((x)->_operator_id_tree_id_)
330 #define operator_id_tree_sons_(x) operator_id_tree_sons(x) /* old hack compatible */
331 #define operator_id_tree_sons(x) ((x)->_operator_id_tree_sons_)
332 
333 /* PATTERNARG
334  */
335 #define PATTERNARG(x) ((patternArg)((x).p))
336 #define patternArg_CAST(x) PATTERNARG(x)
337 #define PATTERNARG_CAST(x) PATTERNARG(x)
338 #define PATTERNARG_(x) ((x).e)
339 #define PATTERNARG_TYPE patternArg
340 #define patternArg_TYPE patternArg
341 #define patternArg_undefined ((patternArg)gen_chunk_undefined)
342 #define patternArg_undefined_p(x) ((x)==patternArg_undefined)
343 
345 extern void free_patternArg(patternArg);
348 extern bool patternArg_defined_p(patternArg);
349 #define gen_PATTERNARG_cons gen_patternArg_cons
353 extern void write_patternArg(FILE*, patternArg);
354 extern patternArg read_patternArg(FILE*);
358 };
359 extern string patternArg_tag_as_string(enum patternArg_utype);
360 extern patternArg make_patternArg(enum patternArg_utype, void *);
363 
367  union {
368  intptr_t _patternArg_static_; /* static:int */
369  gen_chunk _patternArg_dynamic_; /* dynamic:unit */
371 };
372 
373 #define patternArg_domain_number(x) ((x)->_type_)
374 #define patternArg_tag(x) ((x)->_patternArg_tag__)
375 #define patternArg_static_p(x) (patternArg_tag(x)==is_patternArg_static)
376 #define patternArg_static_(x) patternArg_static(x) /* old hack compatible */
377 #define patternArg_static(x) ((x)->_patternArg_union_._patternArg_static_)
378 #define patternArg_dynamic_p(x) (patternArg_tag(x)==is_patternArg_dynamic)
379 #define patternArg_dynamic_(x) patternArg_dynamic(x) /* old hack compatible */
380 #define patternArg_dynamic(x) ((x)->_patternArg_union_._patternArg_dynamic_.u)
381 
382 /* PATTERNX
383  */
384 #define PATTERNX(x) ((patternx)((x).p))
385 #define patternx_CAST(x) PATTERNX(x)
386 #define PATTERNX_CAST(x) PATTERNX(x)
387 #define PATTERNX_(x) ((x).e)
388 #define PATTERNX_TYPE patternx
389 #define patternx_TYPE patternx
390 #define patternx_undefined ((patternx)gen_chunk_undefined)
391 #define patternx_undefined_p(x) ((x)==patternx_undefined)
392 
394 extern void free_patternx(patternx);
396 extern bool patternx_consistent_p(patternx);
397 extern bool patternx_defined_p(patternx);
398 #define gen_PATTERNX_cons gen_patternx_cons
402 extern void write_patternx(FILE*, patternx);
403 extern patternx read_patternx(FILE*);
405 
408  opcodeClass _patternx_class_; /* class:opcodeClass */
409  list _patternx_args_; /* args:patternArg* */
410 };
411 
412 #define patternx_domain_number(x) ((x)->_type_)
413 #define patternx_class_(x) patternx_class(x) /* old hack compatible */
414 #define patternx_class(x) ((x)->_patternx_class_)
415 #define patternx_args_(x) patternx_args(x) /* old hack compatible */
416 #define patternx_args(x) ((x)->_patternx_args_)
417 
418 /* REDUCTIONINFO
419  */
420 #define REDUCTIONINFO(x) ((reductionInfo)((x).p))
421 #define reductionInfo_CAST(x) REDUCTIONINFO(x)
422 #define REDUCTIONINFO_CAST(x) REDUCTIONINFO(x)
423 #define REDUCTIONINFO_(x) ((x).e)
424 #define REDUCTIONINFO_TYPE reductionInfo
425 #define reductionInfo_TYPE reductionInfo
426 #define reductionInfo_undefined ((reductionInfo)gen_chunk_undefined)
427 #define reductionInfo_undefined_p(x) ((x)==reductionInfo_undefined)
428 
430 extern void free_reductionInfo(reductionInfo);
434 #define gen_REDUCTIONINFO_cons gen_reductionInfo_cons
438 extern void write_reductionInfo(FILE*, reductionInfo);
439 extern reductionInfo read_reductionInfo(FILE*);
441 
444  reduction _reductionInfo_reduction_; /* reduction:reduction */
446  entity _reductionInfo_vector_; /* vector:entity */
447 };
448 
449 #define reductionInfo_domain_number(x) ((x)->_type_)
450 #define reductionInfo_reduction_(x) reductionInfo_reduction(x) /* old hack compatible */
451 #define reductionInfo_reduction(x) ((x)->_reductionInfo_reduction_)
452 #define reductionInfo_count_(x) reductionInfo_count(x) /* old hack compatible */
453 #define reductionInfo_count(x) ((x)->_reductionInfo_count_)
454 #define reductionInfo_vector_(x) reductionInfo_vector(x) /* old hack compatible */
455 #define reductionInfo_vector(x) ((x)->_reductionInfo_vector_)
456 
457 /* SIMDSTATEMENT
458  */
459 #define SIMDSTATEMENT(x) ((simdstatement)((x).p))
460 #define simdstatement_CAST(x) SIMDSTATEMENT(x)
461 #define SIMDSTATEMENT_CAST(x) SIMDSTATEMENT(x)
462 #define SIMDSTATEMENT_(x) ((x).e)
463 #define SIMDSTATEMENT_TYPE simdstatement
464 #define simdstatement_TYPE simdstatement
465 #define simdstatement_undefined ((simdstatement)gen_chunk_undefined)
466 #define simdstatement_undefined_p(x) ((x)==simdstatement_undefined)
467 
469 extern void free_simdstatement(simdstatement);
473 #define gen_SIMDSTATEMENT_cons gen_simdstatement_cons
477 extern void write_simdstatement(FILE*, simdstatement);
478 extern simdstatement read_simdstatement(FILE*);
480 
483  opcode _simdstatement_opcode_; /* opcode:opcode */
485  entity * _simdstatement_vectors_; /* vectors:entity[] */
486  expression * _simdstatement_arguments_; /* arguments:expression[] */
487 };
488 
489 #define simdstatement_domain_number(x) ((x)->_type_)
490 #define simdstatement_opcode_(x) simdstatement_opcode(x) /* old hack compatible */
491 #define simdstatement_opcode(x) ((x)->_simdstatement_opcode_)
492 #define simdstatement_nbArgs_(x) simdstatement_nbArgs(x) /* old hack compatible */
493 #define simdstatement_nbArgs(x) ((x)->_simdstatement_nbArgs_)
494 #define simdstatement_vectors_(x) simdstatement_vectors(x) /* old hack compatible */
495 #define simdstatement_vectors(x) ((x)->_simdstatement_vectors_)
496 #define simdstatement_arguments_(x) simdstatement_arguments(x) /* old hack compatible */
497 #define simdstatement_arguments(x) ((x)->_simdstatement_arguments_)
498 
499 /* OPCODECLASS
500  */
501 #define OPCODECLASS(x) ((opcodeClass)((x).p))
502 #define opcodeClass_CAST(x) OPCODECLASS(x)
503 #define OPCODECLASS_CAST(x) OPCODECLASS(x)
504 #define OPCODECLASS_(x) ((x).e)
505 #define OPCODECLASS_TYPE opcodeClass
506 #define opcodeClass_TYPE opcodeClass
507 #define opcodeClass_undefined ((opcodeClass)gen_chunk_undefined)
508 #define opcodeClass_undefined_p(x) ((x)==opcodeClass_undefined)
509 
511 extern void free_opcodeClass(opcodeClass);
515 #define gen_OPCODECLASS_cons gen_opcodeClass_cons
519 extern opcodeClass gen_find_opcodeClass(char *);
520 extern void write_tabulated_opcodeClass(FILE *);
521 extern void read_tabulated_opcodeClass(FILE *);
522 extern opcodeClass make_opcodeClass(string, intptr_t, list);
523 
527  string _opcodeClass_name_; /* name:string */
528  intptr_t _opcodeClass_nbArgs_; /* nbArgs:int */
529  list _opcodeClass_opcodes_; /* opcodes:opcode* */
530 };
531 
532 #define opcodeClass_domain_number(x) ((x)->_type_)
533 #define opcodeClass_name_(x) opcodeClass_name(x) /* old hack compatible */
534 #define opcodeClass_name(x) ((x)->_opcodeClass_name_)
535 #define opcodeClass_nbArgs_(x) opcodeClass_nbArgs(x) /* old hack compatible */
536 #define opcodeClass_nbArgs(x) ((x)->_opcodeClass_nbArgs_)
537 #define opcodeClass_opcodes_(x) opcodeClass_opcodes(x) /* old hack compatible */
538 #define opcodeClass_opcodes(x) ((x)->_opcodeClass_opcodes_)
539 
540 /* TRANSFORMATION
541  */
542 #define TRANSFORMATION(x) ((transformation)((x).p))
543 #define transformation_CAST(x) TRANSFORMATION(x)
544 #define TRANSFORMATION_CAST(x) TRANSFORMATION(x)
545 #define TRANSFORMATION_(x) ((x).e)
546 #define TRANSFORMATION_TYPE transformation
547 #define transformation_TYPE transformation
548 #define transformation_undefined ((transformation)gen_chunk_undefined)
549 #define transformation_undefined_p(x) ((x)==transformation_undefined)
550 
556 #define gen_TRANSFORMATION_cons gen_transformation_cons
560 extern void write_transformation(FILE*, transformation);
561 extern transformation read_transformation(FILE*);
563 
566  string _transformation_name_; /* name:string */
567  intptr_t _transformation_vectorLengthOut_; /* vectorLengthOut:int */
568  intptr_t _transformation_subwordSizeOut_; /* subwordSizeOut:int */
569  intptr_t _transformation_vectorLengthIn_; /* vectorLengthIn:int */
570  intptr_t _transformation_subwordSizeIn_; /* subwordSizeIn:int */
572  int * _transformation_mapping_; /* mapping:int[] */
573 };
574 
575 #define transformation_domain_number(x) ((x)->_type_)
576 #define transformation_name_(x) transformation_name(x) /* old hack compatible */
577 #define transformation_name(x) ((x)->_transformation_name_)
578 #define transformation_vectorLengthOut_(x) transformation_vectorLengthOut(x) /* old hack compatible */
579 #define transformation_vectorLengthOut(x) ((x)->_transformation_vectorLengthOut_)
580 #define transformation_subwordSizeOut_(x) transformation_subwordSizeOut(x) /* old hack compatible */
581 #define transformation_subwordSizeOut(x) ((x)->_transformation_subwordSizeOut_)
582 #define transformation_vectorLengthIn_(x) transformation_vectorLengthIn(x) /* old hack compatible */
583 #define transformation_vectorLengthIn(x) ((x)->_transformation_vectorLengthIn_)
584 #define transformation_subwordSizeIn_(x) transformation_subwordSizeIn(x) /* old hack compatible */
585 #define transformation_subwordSizeIn(x) ((x)->_transformation_subwordSizeIn_)
586 #define transformation_nbArgs_(x) transformation_nbArgs(x) /* old hack compatible */
587 #define transformation_nbArgs(x) ((x)->_transformation_nbArgs_)
588 #define transformation_mapping_(x) transformation_mapping(x) /* old hack compatible */
589 #define transformation_mapping(x) ((x)->_transformation_mapping_)
590 
591 #define sac_private_spec "\
592 --NEWGEN-START 177\n\
593 import entity from \"ri.newgen\";\n\
594 import expression from \"ri.newgen\";\n\
595 import statement from \"ri.newgen\";\n\
596 import reference from \"ri.newgen\";\n\
597 import reduction from \"reductions_private.newgen\";\n\
598 external operator_id_sons;\n\
599 matchTree = patterns:patternx* x sons:matchTreeSons;\n\
600 matchTreeSons = int:int -> matchTree:matchTree;\n\
601 match = type:opcodeClass x args:expression*;\n\
602 opcode = name:string x vectorSize:int x argType:int* x cost:float;\n\
603 operator_id_tree = id:int x sons:operator_id_sons;\n\
604 patternArg = static:int + dynamic:unit;\n\
605 patternx = class:opcodeClass x args:patternArg*;\n\
606 reductionInfo = persistant reduction:reduction x count:int x persistant vector:entity;\n\
607 simdstatement = opcode:opcode x nbArgs:int x vectors:entity[16] x arguments:expression[48];\n\
608 tabulated opcodeClass = name:string x nbArgs:int x opcodes:opcode*;\n\
609 transformation = name:string x vectorLengthOut:int x subwordSizeOut:int x vectorLengthIn:int x subwordSizeIn:int x nbArgs:int x mapping:int[16];\n\
610 "
611 #endif
void * operator_id_sons
Definition: newgen.c:38
void transformation_assign_contents(transformation, transformation)
Definition: sac_private.c:493
bool matchTreeSons_consistent_p(matchTreeSons)
Definition: sac_private.c:69
void matchTreeSons_non_recursive_free(matchTreeSons)
Definition: sac_private.c:86
void reductionInfo_non_recursive_free(reductionInfo)
Definition: sac_private.c:366
bool reductionInfo_defined_p(reductionInfo)
Definition: sac_private.c:353
list gen_simdstatement_cons(simdstatement, list)
Definition: sac_private.c:398
simdstatement read_simdstatement(FILE *)
Definition: sac_private.c:415
void free_patternArg(patternArg)
Definition: sac_private.c:246
void patternx_assign_contents(patternx, patternx)
Definition: sac_private.c:317
bool matchTree_consistent_p(matchTree)
Definition: sac_private.c:27
struct _newgen_struct_reductionInfo_ * reductionInfo
Definition: sac_private.h:114
struct _newgen_struct_reference_ * reference
Definition: sac_private.h:35
struct _newgen_struct_patternArg_ * patternArg
Definition: sac_private.h:98
void simdstatement_non_recursive_free(simdstatement)
Definition: sac_private.c:408
match read_match(FILE *)
Definition: sac_private.c:150
bool matchTreeSons_defined_p(matchTreeSons)
Definition: sac_private.c:73
opcode copy_opcode(opcode)
OPCODE.
Definition: sac_private.c:159
bool simdstatement_defined_p(simdstatement)
Definition: sac_private.c:395
struct _newgen_struct_statement_ * statement
Definition: sac_private.h:28
void matchTreeSons_assign_contents(matchTreeSons, matchTreeSons)
Definition: sac_private.c:79
void free_opcode(opcode)
Definition: sac_private.c:162
transformation check_transformation(transformation)
Definition: sac_private.c:480
void opcodeClass_assign_contents(opcodeClass, opcodeClass)
Definition: sac_private.c:443
bool match_defined_p(match)
Definition: sac_private.c:130
bool patternArg_defined_p(patternArg)
Definition: sac_private.c:256
void read_tabulated_opcodeClass(FILE *)
Definition: sac_private.c:460
matchTree check_matchTree(matchTree)
Definition: sac_private.c:24
struct _newgen_struct_matchTree_ * matchTree
Definition: sac_private.h:58
list gen_opcodeClass_cons(opcodeClass, list)
Definition: sac_private.c:440
opcode check_opcode(opcode)
Definition: sac_private.c:165
void write_patternArg(FILE *, patternArg)
Definition: sac_private.c:273
simdstatement check_simdstatement(simdstatement)
Definition: sac_private.c:388
patternArg make_patternArg_dynamic(void)
Definition: sac_private.c:292
matchTree apply_matchTreeSons(matchTreeSons, intptr_t)
Definition: sac_private.c:99
operator_id_tree make_operator_id_tree(intptr_t, operator_id_sons)
Definition: sac_private.c:237
reductionInfo read_reductionInfo(FILE *)
Definition: sac_private.c:373
bool match_consistent_p(match)
Definition: sac_private.c:126
list gen_matchTreeSons_cons(matchTreeSons, list)
Definition: sac_private.c:76
matchTreeSons check_matchTreeSons(matchTreeSons)
Definition: sac_private.c:66
list gen_opcode_cons(opcode, list)
Definition: sac_private.c:175
bool operator_id_tree_defined_p(operator_id_tree)
Definition: sac_private.c:214
void patternArg_non_recursive_free(patternArg)
Definition: sac_private.c:269
void operator_id_tree_non_recursive_free(operator_id_tree)
Definition: sac_private.c:227
void patternArg_assign_contents(patternArg, patternArg)
Definition: sac_private.c:262
list gen_match_cons(match, list)
Definition: sac_private.c:133
struct _newgen_struct_operator_id_tree_ * operator_id_tree
Definition: sac_private.h:90
void operator_id_tree_assign_contents(operator_id_tree, operator_id_tree)
Definition: sac_private.c:220
void write_simdstatement(FILE *, simdstatement)
Definition: sac_private.c:412
void patternx_non_recursive_free(patternx)
Definition: sac_private.c:324
patternArg_utype
Definition: sac_private.h:355
@ is_patternArg_dynamic
Definition: sac_private.h:357
@ is_patternArg_static
Definition: sac_private.h:356
opcodeClass make_opcodeClass(string, intptr_t, list)
Definition: sac_private.c:468
list gen_patternx_cons(patternx, list)
Definition: sac_private.c:314
reductionInfo make_reductionInfo(reduction, intptr_t, entity)
Definition: sac_private.c:376
void write_tabulated_opcodeClass(FILE *)
Definition: sac_private.c:457
void match_assign_contents(match, match)
Definition: sac_private.c:136
struct _newgen_struct_reduction_ * reduction
Definition: sac_private.h:42
void write_transformation(FILE *, transformation)
Definition: sac_private.c:504
void free_reductionInfo(reductionInfo)
Definition: sac_private.c:343
bool matchTree_defined_p(matchTree)
Definition: sac_private.c:31
bool opcodeClass_defined_p(opcodeClass)
Definition: sac_private.c:437
transformation read_transformation(FILE *)
Definition: sac_private.c:507
void free_operator_id_tree(operator_id_tree)
Definition: sac_private.c:204
matchTree delete_matchTreeSons(matchTreeSons, intptr_t)
Definition: sac_private.c:108
opcodeClass check_opcodeClass(opcodeClass)
Definition: sac_private.c:430
matchTreeSons read_matchTreeSons(FILE *)
Definition: sac_private.c:93
void free_match(match)
Definition: sac_private.c:120
void matchTree_non_recursive_free(matchTree)
Definition: sac_private.c:44
bool opcode_consistent_p(opcode)
Definition: sac_private.c:168
bool simdstatement_consistent_p(simdstatement)
Definition: sac_private.c:391
patternArg copy_patternArg(patternArg)
PATTERNARG.
Definition: sac_private.c:243
bool patternx_defined_p(patternx)
Definition: sac_private.c:311
bool operator_id_tree_consistent_p(operator_id_tree)
Definition: sac_private.c:210
void write_opcode(FILE *, opcode)
Definition: sac_private.c:189
bool patternx_consistent_p(patternx)
Definition: sac_private.c:307
transformation copy_transformation(transformation)
TRANSFORMATION.
Definition: sac_private.c:474
void write_patternx(FILE *, patternx)
Definition: sac_private.c:328
void opcode_assign_contents(opcode, opcode)
Definition: sac_private.c:178
patternArg check_patternArg(patternArg)
Definition: sac_private.c:249
matchTree copy_matchTree(matchTree)
MATCHTREE.
Definition: sac_private.c:18
matchTree make_matchTree(list, matchTreeSons)
Definition: sac_private.c:54
void transformation_non_recursive_free(transformation)
Definition: sac_private.c:500
patternx copy_patternx(patternx)
PATTERNX.
Definition: sac_private.c:298
struct _newgen_struct_patternx_ * patternx
Definition: sac_private.h:106
matchTree read_matchTree(FILE *)
Definition: sac_private.c:51
bool transformation_defined_p(transformation)
Definition: sac_private.c:487
opcode read_opcode(FILE *)
Definition: sac_private.c:192
void free_matchTree(matchTree)
Definition: sac_private.c:21
simdstatement make_simdstatement(opcode, intptr_t, entity *, expression *)
Definition: sac_private.c:418
matchTreeSons copy_matchTreeSons(matchTreeSons)
MATCHTREESONS.
Definition: sac_private.c:60
patternx make_patternx(opcodeClass, list)
Definition: sac_private.c:334
void free_simdstatement(simdstatement)
Definition: sac_private.c:385
patternArg read_patternArg(FILE *)
Definition: sac_private.c:276
struct _newgen_struct_opcodeClass_ * opcodeClass
Definition: sac_private.h:130
simdstatement copy_simdstatement(simdstatement)
SIMDSTATEMENT.
Definition: sac_private.c:382
matchTreeSons make_matchTreeSons(void)
Definition: sac_private.c:96
struct _newgen_struct_opcode_ * opcode
Definition: sac_private.h:82
void match_non_recursive_free(match)
Definition: sac_private.c:143
string patternArg_tag_as_string(enum patternArg_utype)
Definition: sac_private.c:279
void extend_matchTreeSons(matchTreeSons, intptr_t, matchTree)
Definition: sac_private.c:105
list gen_matchTree_cons(matchTree, list)
Definition: sac_private.c:34
void reductionInfo_assign_contents(reductionInfo, reductionInfo)
Definition: sac_private.c:359
void write_matchTree(FILE *, matchTree)
Definition: sac_private.c:48
match make_match(opcodeClass, list)
Definition: sac_private.c:153
void matchTree_assign_contents(matchTree, matchTree)
Definition: sac_private.c:37
void update_matchTreeSons(matchTreeSons, intptr_t, matchTree)
Definition: sac_private.c:102
patternx check_patternx(patternx)
Definition: sac_private.c:304
void free_opcodeClass(opcodeClass)
Definition: sac_private.c:427
void free_patternx(patternx)
Definition: sac_private.c:301
bool patternArg_consistent_p(patternArg)
Definition: sac_private.c:252
list gen_patternArg_cons(patternArg, list)
Definition: sac_private.c:259
void write_reductionInfo(FILE *, reductionInfo)
Definition: sac_private.c:370
void free_matchTreeSons(matchTreeSons)
Definition: sac_private.c:63
struct _newgen_struct_match_ * match
Definition: sac_private.h:74
match check_match(match)
Definition: sac_private.c:123
void simdstatement_assign_contents(simdstatement, simdstatement)
Definition: sac_private.c:401
patternArg make_patternArg_static(intptr_t)
Definition: sac_private.c:289
bool opcode_defined_p(opcode)
Definition: sac_private.c:172
struct _newgen_struct_expression_ * expression
Definition: sac_private.h:21
list gen_transformation_cons(transformation, list)
Definition: sac_private.c:490
void write_operator_id_tree(FILE *, operator_id_tree)
Definition: sac_private.c:231
bool bound_matchTreeSons_p(matchTreeSons, intptr_t)
Definition: sac_private.c:111
opcodeClass gen_find_opcodeClass(char *)
Definition: sac_private.c:454
operator_id_tree read_operator_id_tree(FILE *)
Definition: sac_private.c:234
void write_match(FILE *, match)
Definition: sac_private.c:147
transformation make_transformation(string, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, int *)
Definition: sac_private.c:510
list gen_reductionInfo_cons(reductionInfo, list)
Definition: sac_private.c:356
struct _newgen_struct_entity_ * entity
Definition: sac_private.h:14
bool reductionInfo_consistent_p(reductionInfo)
Definition: sac_private.c:349
void free_transformation(transformation)
Definition: sac_private.c:477
opcode make_opcode(string, intptr_t, list, float)
Definition: sac_private.c:195
list gen_operator_id_tree_cons(operator_id_tree, list)
Definition: sac_private.c:217
reductionInfo copy_reductionInfo(reductionInfo)
REDUCTIONINFO.
Definition: sac_private.c:340
match copy_match(match)
MATCH.
Definition: sac_private.c:117
struct _newgen_struct_matchTreeSons_ * matchTreeSons
Definition: sac_private.h:66
struct _newgen_struct_simdstatement_ * simdstatement
Definition: sac_private.h:122
void opcodeClass_non_recursive_free(opcodeClass)
Definition: sac_private.c:450
patternx read_patternx(FILE *)
Definition: sac_private.c:331
bool transformation_consistent_p(transformation)
Definition: sac_private.c:483
void write_matchTreeSons(FILE *, matchTreeSons)
Definition: sac_private.c:90
bool opcodeClass_consistent_p(opcodeClass)
Definition: sac_private.c:433
struct _newgen_struct_transformation_ * transformation
Definition: sac_private.h:138
reductionInfo check_reductionInfo(reductionInfo)
Definition: sac_private.c:346
operator_id_tree copy_operator_id_tree(operator_id_tree)
OPERATOR_ID_TREE.
Definition: sac_private.c:201
opcodeClass copy_opcodeClass(opcodeClass)
OPCODECLASS.
Definition: sac_private.c:424
operator_id_tree check_operator_id_tree(operator_id_tree)
Definition: sac_private.c:207
patternArg make_patternArg(enum patternArg_utype, void *)
Definition: sac_private.c:286
void opcode_non_recursive_free(opcode)
Definition: sac_private.c:185
#define intptr_t
Definition: stdint.in.h:294
matchTreeSons _matchTree_sons_
patterns:patternx*
Definition: sac_private.h:169
opcodeClass _match_type_
Definition: sac_private.h:245
list _match_args_
type:opcodeClass
Definition: sac_private.h:246
list _opcodeClass_opcodes_
nbArgs:int
Definition: sac_private.h:529
intptr_t _opcodeClass_nbArgs_
name:string
Definition: sac_private.h:528
intptr_t _opcode_vectorSize_
name:string
Definition: sac_private.h:282
list _opcode_argType_
vectorSize:int
Definition: sac_private.h:283
gen_chunk _opcode_cost_
argType:int*
Definition: sac_private.h:284
operator_id_sons _operator_id_tree_sons_
id:int
Definition: sac_private.h:324
enum patternArg_utype _patternArg_tag__
Definition: sac_private.h:366
gen_chunk _patternArg_dynamic_
static:int
Definition: sac_private.h:369
union _newgen_struct_patternArg_::@79 _patternArg_union_
opcodeClass _patternx_class_
Definition: sac_private.h:408
list _patternx_args_
class:opcodeClass
Definition: sac_private.h:409
entity _reductionInfo_vector_
count:int
Definition: sac_private.h:446
intptr_t _reductionInfo_count_
reduction:reduction
Definition: sac_private.h:445
expression * _simdstatement_arguments_
vectors:entity[]
Definition: sac_private.h:486
intptr_t _simdstatement_nbArgs_
opcode:opcode
Definition: sac_private.h:484
entity * _simdstatement_vectors_
nbArgs:int
Definition: sac_private.h:485
intptr_t _transformation_vectorLengthOut_
name:string
Definition: sac_private.h:567
intptr_t _transformation_nbArgs_
subwordSizeIn:int
Definition: sac_private.h:571
int * _transformation_mapping_
nbArgs:int
Definition: sac_private.h:572
intptr_t _transformation_subwordSizeOut_
vectorLengthOut:int
Definition: sac_private.h:568
intptr_t _transformation_subwordSizeIn_
vectorLengthIn:int
Definition: sac_private.h:570
intptr_t _transformation_vectorLengthIn_
subwordSizeOut:int
Definition: sac_private.h:569
The structure used to build lists in NewGen.
Definition: newgen_list.h:41
A gen_chunk is used to store every object.
Definition: genC.h:58