56 #define CREATE_TREE_NODE_CASE_BODY(tree_node_name, node_id) \ 58 auto tnn = new tree_node_name(node_id); \ 59 tree_nodeRef cur = tree_nodeRef(tnn); \ 60 TM.AddTreeNode(node_id, cur); \ 61 curr_tree_node_ptr = tnn; \ 63 curr_tree_node_ptr = nullptr; \ 69 switch(tree_node_type)
75 case array_range_ref_K:
99 case bit_ior_concat_expr_K:
113 case aggr_init_expr_K:
119 case case_label_expr_K:
125 case ceil_div_expr_K:
127 case ceil_mod_expr_K:
133 case type_pack_expansion_K:
135 case cleanup_point_expr_K:
143 case component_ref_K:
145 case compound_expr_K:
159 case ctor_initializer_K:
161 case eh_filter_expr_K:
163 case enumeral_type_K:
169 case exact_div_expr_K:
179 case fix_ceil_expr_K:
181 case fix_floor_expr_K:
183 case fix_round_expr_K:
185 case fix_trunc_expr_K:
189 case floor_div_expr_K:
191 case floor_mod_expr_K:
193 case function_decl_K:
195 case function_type_K:
199 case gimple_assign_K:
203 case goto_subroutine_K:
209 case imagpart_expr_K:
213 case misaligned_indirect_ref_K:
257 case mult_highpart_expr_K:
259 case gimple_multi_way_if_K:
261 case namespace_decl_K:
269 case non_lvalue_expr_K:
285 case placeholder_expr_K:
289 case pointer_plus_expr_K:
293 case postdecrement_expr_K:
295 case postincrement_expr_K:
297 case predecrement_expr_K:
299 case preincrement_expr_K:
301 case qual_union_type_K:
311 case realpart_expr_K:
317 case reduc_max_expr_K:
319 case reduc_min_expr_K:
321 case reduc_plus_expr_K:
323 case reference_expr_K:
325 case reference_type_K:
327 case reinterpret_cast_expr_K:
333 case gimple_return_K:
337 case round_div_expr_K:
339 case round_mod_expr_K:
357 case statement_list_K:
359 case static_cast_expr_K:
363 case gimple_switch_K:
367 case target_mem_ref_K:
369 case target_mem_ref461_K:
373 case template_decl_K:
375 case template_id_expr_K:
377 case template_parm_index_K:
379 case template_type_parm_K:
381 case ternary_plus_expr_K:
383 case ternary_pm_expr_K:
385 case ternary_mp_expr_K:
387 case ternary_mm_expr_K:
391 case translation_unit_decl_K:
397 case trunc_div_expr_K:
399 case trunc_mod_expr_K:
401 case truth_and_expr_K:
403 case truth_andif_expr_K:
405 case truth_not_expr_K:
407 case truth_or_expr_K:
409 case truth_orif_expr_K:
411 case truth_xor_expr_K:
415 case try_catch_expr_K:
421 case typename_type_K:
435 case unordered_expr_K:
445 case vec_cond_expr_K:
447 case vec_perm_expr_K:
449 case dot_prod_expr_K:
451 case vec_lshift_expr_K:
453 case vec_rshift_expr_K:
455 case widen_mult_hi_expr_K:
457 case widen_mult_lo_expr_K:
459 case vec_unpack_hi_expr_K:
461 case vec_unpack_lo_expr_K:
463 case vec_unpack_float_hi_expr_K:
465 case vec_unpack_float_lo_expr_K:
467 case vec_pack_trunc_expr_K:
469 case vec_pack_sat_expr_K:
471 case vec_pack_fix_trunc_expr_K:
473 case vec_extracteven_expr_K:
475 case vec_extractodd_expr_K:
477 case vec_interleavehigh_expr_K:
479 case vec_interleavelow_expr_K:
487 case type_argument_pack_K:
489 case nontype_argument_pack_K:
491 case expr_pack_expansion_K:
495 case view_convert_expr_K:
501 case with_cleanup_expr_K:
503 case with_size_expr_K:
509 case gimple_pragma_K:
513 case omp_atomic_pragma_K:
515 case omp_for_pragma_K:
517 case omp_critical_pragma_K:
519 case omp_declare_simd_pragma_K:
521 case omp_simd_pragma_K:
523 case omp_parallel_pragma_K:
525 case omp_sections_pragma_K:
527 case omp_parallel_sections_pragma_K:
529 case omp_section_pragma_K:
531 case omp_target_pragma_K:
533 case omp_task_pragma_K:
537 case call_hw_pragma_K:
539 case call_point_hw_pragma_K:
545 case blackbox_pragma_K:
547 case profiling_pragma_K:
549 case statistical_profiling_K:
553 case identifier_node_K:
567 THROW_ERROR(
"Incorrect schema for identifier_node: no TOK_STRG nor TOK_OPERATOR");
572 case widen_sum_expr_K:
574 case widen_mult_expr_K:
578 case extract_bit_expr_K:
580 case sat_plus_expr_K:
582 case sat_minus_expr_K:
588 case extractvalue_expr_K:
590 case insertvalue_expr_K:
592 case extractelement_expr_K:
594 case insertelement_expr_K:
601 case gimple_predict_K:
617 void tree_node_factory::operator()(
const tree_node* obj,
unsigned int&)
622 void tree_node_factory::operator()(
const tree_reindex* obj,
unsigned int&)
627 void tree_node_factory::operator()(
const attr* obj,
unsigned int& mask)
630 tree_node_mask::operator()(obj, mask);
635 (TOK_NEW)(TOK_DELETE)(TOK_ASSIGN)(TOK_MEMBER)(TOK_PUBLIC)(TOK_PROTECTED)(TOK_PRIVATE)(TOK_NORETURN)(TOK_VOLATILE)( \ 636 TOK_NOINLINE)(TOK_ALWAYS_INLINE)(TOK_USED)(TOK_UNUSED)(TOK_CONST)(TOK_TRANSPARENT_UNION)(TOK_CONSTRUCTOR)( \ 637 TOK_DESTRUCTOR)(TOK_MODE)(TOK_SECTION)(TOK_ALIGNED)(TOK_WEAK)(TOK_ALIAS)(TOK_NO_INSTRUMENT_FUNCTION)( \ 638 TOK_MALLOC)(TOK_NO_STACK_LIMIT)(TOK_PURE)(TOK_DEPRECATED)(TOK_VECTOR_SIZE)(TOK_VISIBILITY)(TOK_TLS_MODEL)( \ 639 TOK_NONNULL)(TOK_NOTHROW)(TOK_MAY_ALIAS)(TOK_WARN_UNUSED_RESULT)(TOK_FORMAT)(TOK_FORMAT_ARG)(TOK_NULL)( \ 640 TOK_GLOBAL_INIT)(TOK_GLOBAL_FINI)(TOK_CONVERSION)(TOK_VIRTUAL)(TOK_LSHIFT)(TOK_MUTABLE)(TOK_PSEUDO_TMPL)( \ 641 TOK_VECNEW)(TOK_VECDELETE)(TOK_POS)(TOK_NEG)(TOK_ADDR)(TOK_DEREF)(TOK_LNOT)(TOK_NOT)(TOK_PREINC)(TOK_PREDEC)( \ 642 TOK_PLUSASSIGN)(TOK_PLUS)(TOK_MINUSASSIGN)(TOK_MINUS)(TOK_MULTASSIGN)(TOK_MULT)(TOK_DIVASSIGN)(TOK_DIV)( \ 643 TOK_MODASSIGN)(TOK_MOD)(TOK_ANDASSIGN)(TOK_AND)(TOK_ORASSIGN)(TOK_OR)(TOK_XORASSIGN)(TOK_XOR)( \ 644 TOK_LSHIFTASSIGN)(TOK_RSHIFTASSIGN)(TOK_RSHIFT)(TOK_EQ)(TOK_NE)(TOK_LT)(TOK_GT)(TOK_LE)(TOK_GE)(TOK_LAND)( \ 645 TOK_LOR)(TOK_COMPOUND)(TOK_MEMREF)(TOK_REF)(TOK_SUBS)(TOK_POSTINC)(TOK_POSTDEC)(TOK_CALL)(TOK_THUNK)( \ 646 TOK_THIS_ADJUSTING)(TOK_RESULT_ADJUSTING)(TOK_BITFIELD) 647 #define ATTR_MACRO(r, data, elem) \ 648 attr_p = tree_node_schema.find(TOK(elem)) != tree_node_schema.end(); \ 650 dynamic_cast<attr*>(curr_tree_node_ptr)->list_attr.insert(TOK(elem)); 657 #define SET_NODE_ID_OPT(token, field, type) \ 658 if(tree_node_schema.find(TOK(token)) != tree_node_schema.end()) \ 660 auto node_id = static_cast<unsigned>(std::stoul(tree_node_schema.find(TOK(token))->second)); \ 661 dynamic_cast<type*>(curr_tree_node_ptr)->field = TM.GetTreeReindex(node_id); \ 664 #define SET_NODE_ID(token, field, type) \ 666 THROW_ASSERT(tree_node_schema.find(TOK(token)) != tree_node_schema.end(), \ 667 std::string("tree_node_schema must have ") + STOK(token) + " value"); \ 668 auto node_id = static_cast<unsigned>(std::stoul(tree_node_schema.find(TOK(token))->second)); \ 669 dynamic_cast<type*>(curr_tree_node_ptr)->field = TM.GetTreeReindex(node_id); \ 672 #define SET_VALUE_OPT(token, field, type) \ 673 if(tree_node_schema.find(TOK(token)) != tree_node_schema.end()) \ 675 dynamic_cast<type*>(curr_tree_node_ptr)->field = \ 676 boost::lexical_cast<decltype(type::field)>(tree_node_schema.find(TOK(token))->second); \ 679 #define SET_VALUE(token, field, type) \ 680 THROW_ASSERT(tree_node_schema.find(TOK(token)) != tree_node_schema.end(), \ 681 std::string("tree node schema must have ") + STOK(token) + " value"); \ 682 dynamic_cast<type*>(curr_tree_node_ptr)->field = \ 683 boost::lexical_cast<decltype(type::field)>(tree_node_schema.find(TOK(token))->second); 685 #define TREE_NOT_YET_IMPLEMENTED(token) \ 686 THROW_ASSERT(tree_node_schema.find(TOK(token)) == tree_node_schema.end(), \ 687 std::string("field not yet supported ") + STOK(token)) 689 void tree_node_factory::operator()(
const WeightedNode*,
unsigned int&)
693 void tree_node_factory::operator()(
const srcp* obj,
unsigned int& mask)
696 tree_node_mask::operator()(obj, mask);
698 "tree_node_schema must have TOK_SRCP value");
700 std::string::size_type colon_pos2 = srcp_str.rfind(
':');
701 std::string::size_type colon_pos = srcp_str.rfind(
':', colon_pos2 - 1);
704 static_cast<unsigned>(std::stoul(srcp_str.substr(colon_pos + 1, colon_pos2 - colon_pos - 1)));
706 static_cast<unsigned>(std::stoul(srcp_str.substr(colon_pos2 + 1)));
709 void tree_node_factory::operator()(
const decl_node* obj,
unsigned int& mask)
712 tree_node_mask::operator()(obj, mask);
729 void tree_node_factory::operator()(
const expr_node* obj,
unsigned int& mask)
732 tree_node_mask::operator()(obj, mask);
736 void tree_node_factory::operator()(
const gimple_node* obj,
unsigned int& mask)
738 tree_node_mask::operator()(obj, mask);
747 void tree_node_factory::operator()(
const unary_expr* obj,
unsigned int& mask)
750 tree_node_mask::operator()(obj, mask);
754 void tree_node_factory::operator()(
const binary_expr* obj,
unsigned int& mask)
757 tree_node_mask::operator()(obj, mask);
762 void tree_node_factory::operator()(
const ternary_expr* obj,
unsigned int& mask)
765 tree_node_mask::operator()(obj, mask);
771 void tree_node_factory::operator()(
const quaternary_expr* obj,
unsigned int& mask)
774 tree_node_mask::operator()(obj, mask);
781 void tree_node_factory::operator()(
const type_node* obj,
unsigned int& mask)
784 tree_node_mask::operator()(obj, mask);
799 void tree_node_factory::operator()(
const memory_tag* obj,
unsigned int& mask)
802 tree_node_mask::operator()(obj, mask);
810 void tree_node_factory::operator()(
const cst_node* obj,
unsigned int& mask)
813 tree_node_mask::operator()(obj, mask);
817 void tree_node_factory::operator()(
const error_mark* obj,
unsigned int& mask)
820 tree_node_mask::operator()(obj, mask);
823 void tree_node_factory::operator()(
const array_type* obj,
unsigned int& mask)
826 tree_node_mask::operator()(obj, mask);
831 void tree_node_factory::operator()(
const gimple_asm* obj,
unsigned int& mask)
834 tree_node_mask::operator()(obj, mask);
842 void tree_node_factory::operator()(
const baselink* obj,
unsigned int& mask)
845 tree_node_mask::operator()(obj, mask);
849 void tree_node_factory::operator()(
const gimple_bind* obj,
unsigned int& mask)
852 tree_node_mask::operator()(obj, mask);
860 void tree_node_factory::operator()(
const binfo* obj,
unsigned int& mask)
863 tree_node_mask::operator()(obj, mask);
877 void tree_node_factory::operator()(
const block* obj,
unsigned int& mask)
880 tree_node_mask::operator()(obj, mask);
885 void tree_node_factory::operator()(
const call_expr* obj,
unsigned int& mask)
888 tree_node_mask::operator()(obj, mask);
901 void tree_node_factory::operator()(
const aggr_init_expr* obj,
unsigned int& mask)
904 tree_node_mask::operator()(obj, mask);
909 void tree_node_factory::operator()(
const gimple_call* obj,
unsigned int& mask)
912 tree_node_mask::operator()(obj, mask);
925 void tree_node_factory::operator()(
const case_label_expr* obj,
unsigned int& mask)
928 tree_node_mask::operator()(obj, mask);
935 void tree_node_factory::operator()(
const cast_expr* obj,
unsigned int& mask)
938 tree_node_mask::operator()(obj, mask);
942 void tree_node_factory::operator()(
const complex_cst* obj,
unsigned int& mask)
945 tree_node_mask::operator()(obj, mask);
950 void tree_node_factory::operator()(
const complex_type* obj,
unsigned int& mask)
953 tree_node_mask::operator()(obj, mask);
958 void tree_node_factory::operator()(
const gimple_cond* obj,
unsigned int& mask)
961 tree_node_mask::operator()(obj, mask);
965 void tree_node_factory::operator()(
const const_decl* obj,
unsigned int& mask)
968 tree_node_mask::operator()(obj, mask);
972 void tree_node_factory::operator()(
const constructor* obj,
unsigned int& mask)
975 tree_node_mask::operator()(obj, mask);
988 void tree_node_factory::operator()(
const enumeral_type* obj,
unsigned int& mask)
991 tree_node_mask::operator()(obj, mask);
999 void tree_node_factory::operator()(
const expr_stmt* obj,
unsigned int& mask)
1002 tree_node_mask::operator()(obj, mask);
1009 void tree_node_factory::operator()(
const field_decl* obj,
unsigned int& mask)
1012 tree_node_mask::operator()(obj, mask);
1020 void tree_node_factory::operator()(
const function_decl* obj,
unsigned int& mask)
1023 tree_node_mask::operator()(obj, mask);
1051 #if HAVE_FROM_PRAGMA_BUILT 1061 void tree_node_factory::operator()(
const function_type* obj,
unsigned int& mask)
1064 tree_node_mask::operator()(obj, mask);
1070 void tree_node_factory::operator()(
const gimple_assign* obj,
unsigned int& mask)
1073 tree_node_mask::operator()(obj, mask);
1082 void tree_node_factory::operator()(
const gimple_goto* obj,
unsigned int& mask)
1085 tree_node_mask::operator()(obj, mask);
1089 void tree_node_factory::operator()(
const handler* obj,
unsigned int& mask)
1092 tree_node_mask::operator()(obj, mask);
1098 void tree_node_factory::operator()(
const identifier_node* obj,
unsigned int& mask)
1101 tree_node_mask::operator()(obj, mask);
1102 THROW_ERROR(
"Use find_identifier_nodeID to find identifier_node objects");
1105 void tree_node_factory::operator()(
const integer_cst* obj,
unsigned int& mask)
1108 tree_node_mask::operator()(obj, mask);
1112 void tree_node_factory::operator()(
const integer_type* obj,
unsigned int& mask)
1115 tree_node_mask::operator()(obj, mask);
1124 void tree_node_factory::operator()(
const gimple_label* obj,
unsigned int& mask)
1127 tree_node_mask::operator()(obj, mask);
1131 void tree_node_factory::operator()(
const method_type* obj,
unsigned int& mask)
1134 tree_node_mask::operator()(obj, mask);
1138 void tree_node_factory::operator()(
const namespace_decl* obj,
unsigned int& mask)
1141 tree_node_mask::operator()(obj, mask);
1145 void tree_node_factory::operator()(
const overload* obj,
unsigned int& mask)
1148 tree_node_mask::operator()(obj, mask);
1154 void tree_node_factory::operator()(
const parm_decl* obj,
unsigned int& mask)
1157 tree_node_mask::operator()(obj, mask);
1167 void tree_node_factory::operator()(
const gimple_phi* obj,
unsigned int& mask)
1170 tree_node_mask::operator()(obj, mask);
1185 void tree_node_factory::operator()(
const pointer_type* obj,
unsigned int& mask)
1188 tree_node_mask::operator()(obj, mask);
1192 void tree_node_factory::operator()(
const real_cst* obj,
unsigned int& mask)
1195 tree_node_mask::operator()(obj, mask);
1201 void tree_node_factory::operator()(
const real_type* obj,
unsigned int& mask)
1204 tree_node_mask::operator()(obj, mask);
1208 void tree_node_factory::operator()(
const record_type* obj,
unsigned int& mask)
1211 tree_node_mask::operator()(obj, mask);
1233 void tree_node_factory::operator()(
const reference_type* obj,
unsigned int& mask)
1236 tree_node_mask::operator()(obj, mask);
1240 void tree_node_factory::operator()(
const result_decl* obj,
unsigned int& mask)
1243 tree_node_mask::operator()(obj, mask);
1250 void tree_node_factory::operator()(
const gimple_return* obj,
unsigned int& mask)
1253 tree_node_mask::operator()(obj, mask);
1257 void tree_node_factory::operator()(
const return_stmt* obj,
unsigned int& mask)
1260 tree_node_mask::operator()(obj, mask);
1266 void tree_node_factory::operator()(
const scope_ref* obj,
unsigned int& mask)
1269 tree_node_mask::operator()(obj, mask);
1274 void tree_node_factory::operator()(
const ssa_name* obj,
unsigned int& mask)
1277 tree_node_mask::operator()(obj, mask);
1292 void tree_node_factory::operator()(
const statement_list* obj,
unsigned int& mask)
1295 tree_node_mask::operator()(obj, mask);
1306 void tree_node_factory::operator()(
const string_cst* obj,
unsigned int& mask)
1309 tree_node_mask::operator()(obj, mask);
1313 void tree_node_factory::operator()(
const gimple_switch* obj,
unsigned int& mask)
1316 tree_node_mask::operator()(obj, mask);
1321 void tree_node_factory::operator()(
const target_expr* obj,
unsigned int& mask)
1324 tree_node_mask::operator()(obj, mask);
1330 void tree_node_factory::operator()(
const lut_expr* obj,
unsigned int& mask)
1333 tree_node_mask::operator()(obj, mask);
1345 void tree_node_factory::operator()(
const template_decl* obj,
unsigned int& mask)
1348 tree_node_mask::operator()(obj, mask);
1358 tree_node_mask::operator()(obj, mask);
1368 void tree_node_factory::operator()(
const tree_list* obj,
unsigned int& mask)
1371 tree_node_mask::operator()(obj, mask);
1378 void tree_node_factory::operator()(
const tree_vec* obj,
unsigned int& mask)
1381 tree_node_mask::operator()(obj, mask);
1390 void tree_node_factory::operator()(
const try_block* obj,
unsigned int& mask)
1393 tree_node_mask::operator()(obj, mask);
1401 void tree_node_factory::operator()(
const type_decl* obj,
unsigned int& mask)
1404 tree_node_mask::operator()(obj, mask);
1409 void tree_node_factory::operator()(
const union_type* obj,
unsigned int& mask)
1412 tree_node_mask::operator()(obj, mask);
1424 void tree_node_factory::operator()(
const var_decl* obj,
unsigned int& mask)
1427 tree_node_mask::operator()(obj, mask);
1448 void tree_node_factory::operator()(
const vector_cst* obj,
unsigned int& mask)
1451 tree_node_mask::operator()(obj, mask);
1458 void tree_node_factory::operator()(
const type_argument_pack* obj,
unsigned int& mask)
1461 tree_node_mask::operator()(obj, mask);
1468 tree_node_mask::operator()(obj, mask);
1475 tree_node_mask::operator()(obj, mask);
1484 tree_node_mask::operator()(obj, mask);
1490 void tree_node_factory::operator()(
const vector_type* obj,
unsigned int& mask)
1493 tree_node_mask::operator()(obj, mask);
1497 void tree_node_factory::operator()(
const target_mem_ref* obj,
unsigned int& mask)
1500 tree_node_mask::operator()(obj, mask);
1512 void tree_node_factory::operator()(
const target_mem_ref461* obj,
unsigned int& mask)
1515 tree_node_mask::operator()(obj, mask);
1525 void tree_node_factory::operator()(
const bloc* obj,
unsigned int& mask)
1527 tree_node_mask::operator()(obj, mask);
1557 void tree_node_factory::operator()(
const gimple_while* obj,
unsigned int& mask)
1560 tree_node_mask::operator()(obj, mask);
1564 void tree_node_factory::operator()(
const gimple_for* obj,
unsigned int& mask)
1567 tree_node_mask::operator()(obj, mask);
1575 tree_node_mask::operator()(obj, mask);
1579 void tree_node_factory::operator()(
const null_node* obj,
unsigned int& mask)
1582 tree_node_mask::operator()(obj, mask);
1585 void tree_node_factory::operator()(
const gimple_pragma* obj,
unsigned int& mask)
1588 tree_node_mask::operator()(obj, mask);
1597 void tree_node_factory::operator()(
const omp_pragma* obj,
unsigned int& mask)
1600 tree_node_mask::operator()(obj, mask);
1603 void tree_node_factory::operator()(
const omp_for_pragma* obj,
unsigned int& mask)
1606 tree_node_mask::operator()(obj, mask);
1609 void tree_node_factory::operator()(
const omp_simd_pragma* obj,
unsigned int& mask)
1612 tree_node_mask::operator()(obj, mask);
1618 tree_node_mask::operator()(obj, mask);
1621 void tree_node_factory::operator()(
const omp_target_pragma* obj,
unsigned int& mask)
1624 tree_node_mask::operator()(obj, mask);
1630 tree_node_mask::operator()(obj, mask);
1633 void tree_node_factory::operator()(
const omp_task_pragma* obj,
unsigned int& mask)
1636 tree_node_mask::operator()(obj, mask);
1642 tree_node_mask::operator()(obj, mask);
1649 tree_node_mask::operator()(obj, mask);
1656 tree_node_mask::operator()(obj, mask);
1661 void tree_node_factory::operator()(
const omp_section_pragma* obj,
unsigned int& mask)
1664 tree_node_mask::operator()(obj, mask);
1667 void tree_node_factory::operator()(
const map_pragma* obj,
unsigned int& mask)
1670 tree_node_mask::operator()(obj, mask);
1673 void tree_node_factory::operator()(
const call_hw_pragma* obj,
unsigned int& mask)
1676 tree_node_mask::operator()(obj, mask);
1685 tree_node_mask::operator()(obj, mask);
1691 void tree_node_factory::operator()(
const issue_pragma* obj,
unsigned int& mask)
1694 tree_node_mask::operator()(obj, mask);
1697 void tree_node_factory::operator()(
const blackbox_pragma* obj,
unsigned int& mask)
1700 tree_node_mask::operator()(obj, mask);
1703 void tree_node_factory::operator()(
const profiling_pragma* obj,
unsigned int& mask)
1706 tree_node_mask::operator()(obj, mask);
1712 tree_node_mask::operator()(obj, mask);
struct definition of the type_decl tree node.
This struct specifies the integer_cst node.
#define CREATE_TREE_NODE_CASE_BODY(tree_node_name, node_id)
parser/compiler include
struct definition of the const_decl tree node.
This struct implements the target_expr node.
() label_decl()() modop_expr() new_expr() placeholder_expr()() boolean_type() CharType() nullptr_type() lang_type() offset_type() qual_union_type() set_type() template_type_parm() typename_type(void_type)) void tree_node
This struct specifies the field bloc (basic block).
() label_decl()() modop_expr() new_expr() placeholder_expr() template_id_expr(vec_new_expr)) BOOST_PP_SEQ_FOR_EACH(VISIT_TREE_NODE_MACRO
struct definition of the vector_type tree node.
struct definition of the array_type tree node.
struct definition of the real_type tree node.
Any erroneous construct is parsed into a node of this type.
char base
This version is stamped on May 10, 2016.
const std::map< TreeVocabularyTokenTypes_TokenEnum, std::string > & tree_node_schema
tree_node_schema expresses the value of the fields of the tree node we would like to create...
This struct specifies the statement_list node.
A HANDLER wraps a catch handler for the HANDLER_TYPE.
struct definition of the source position.
Represents an argument pack of types (or templates).
struct definition of the function_decl tree node.
struct definition of the method_type tree node.
This struct specifies the gimple_label node.
This struct specifies the string_cst node.
void AddTreeNode(const unsigned int i, const tree_nodeRef &curr)
Add to the tree manager the current node.
struct definition of the union_type tree node.
A simple interface to token object of the raw files.
struct definition of the unary node structures.
struct definition of the record_type tree node.
GIMPLE_BIND <VARS, BLOCK, BODY> represents a lexical scope.
struct definition of the ternary node structures.
#define SET_VALUE_OPT(token, field, type)
This struct specifies the gimple_cond node.
struct definition of the function_type tree node.
struct definition of the parm_decl tree node.
Data structure describing a basic block at tree level.
This class is used to perform the re-index of all tree nodes.
AGGR_INIT_EXPRs have a variably-sized representation similar to that of CALL_EXPRs.
Constructor: return an aggregate value made from specified components.
This struct specifies the binfo node.
struct definition of the template_decl tree node.
This struct represents a try-block statement.
#define TOK(token)
Macro used to convert a token symbol into a treeVocabularyTokenTypes.
Abstract pure class for the tree structure.
struct definition of the label_decl tree node.
#define STR(s)
Macro which performs a lexical_cast to a string.
void line(int x1, int y1, int x2, int y2, unsigned int color)
struct definition of the label_decl tree node.
Directive represinting mapping of a software function on a component.
struct definition of the result_decl tree node.
This struct specifies the vector_cst node.
tree_manager & TM
tree manager
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
virtual std::string get_kind_text() const =0
Virtual function returning the name of the actual class.
This struct specifies the gimple_phi node.
() label_decl() using_decl(translation_unit_decl)) BOOST_PP_SEQ_FOR_EACH(VISIT_TREE_NODE_MACRO
This struct represents a list-like node for chaining overloading candidates.
struct definition of the Quaternary node structures.
This struct specifies the gimple_assign node (GCC 4.3 tree node).
#define SET_NODE_ID(token, field, type)
This struct specifies super class for constant nodes.
Directive represinting mapping of a function call on a component.
Low-level memory addressing.
This struct specifies the gimple_return node.
tree_nodeRef GetTreeReindex(const unsigned int i)
Return a tree_reindex wrapping the i-th tree_node.
Represents an expression that will be expanded into a list of expressions when instantiated with one ...
This struct represents a reference to a member function or member functions from a base class...
struct definition of the function_decl tree node.
unsigned offset[NUM_VERTICES+1]
struct definition of the field_decl tree node.
struct definition of the complex_type tree node.
Classes specification of the tree_node data structures.
GIMPLE_SWITCH <INDEX, DEFAULT_LAB, LAB1, ..., LABN> represents the multiway branch: ...
struct definition of the field attr on function_decl, field_decl, var_decl tree node.
This file collects some utility functions and macros.
#define THROW_ERROR(str_expr)
helper function used to throw an error in a standard way
struct definition of the pointer_type tree node.
BOOST_PP_SEQ_FOR_EACH(OPERATOR_MACRO, BOOST_PP_EMPTY, VISITED_OBJ_SEQ1)
virtual template object functor
This struct specifies the block node.
struct definition of common part of WeightedNode (gimple_assign, expr_node)
struct definition of the reference_type tree node.
This struct specifies the cast_expr node.
void init(int bucket[BUCKETSIZE])
struct definition of the common part of an expression
This struct specifies the lut_expr node.
This struct specifies the complex_cst node.
struct definition of the type node structures.
This struct specifies the tree_list node.
tree_node * curr_tree_node_ptr
current tree node filled according to the tree_node_schema
Class specification of the tree_reindex support class.
This struct represent a statement expression.
This struct specifies the call_expr node.
void create_tree_node(const unsigned int node_id, enum kind)
tree_node visitors
#define SET_NODE_ID_OPT(token, field, type)
This struct specifies reference to particular overloaded struct method The tree walker structure of t...
struct definition of the common part of a gimple with virtual operands
This struct represent a 'return' statement.
This struct specifies a multi-way-if construct.
This struct specifies the real_cst node.
#define SET_VALUE(token, field, type)
This struct specifies the case_label_expr node.
Classes specification of the tree_node data structures not present in the gcc.
Low-level memory addressing.
#define TREE_NOT_YET_IMPLEMENTED(token)
refcount< tree_node > tree_nodeRef
RefCount type definition of the tree_node class structure.
This struct specifies the ssa_name node.
This struct specifies the gimple_goto node.
This struct specifies the for expression Used to represent a for construct.
struct definition of the integer_type tree node.
struct definition of the integer_type tree node.
struct definition of the binary node structures.
This struct specifies the tree_vec node.
This struct specifies the gimple_asm node.
This struct specifies the gimple_call node.
struct definition of the declaration node structures.
Class specification of the manager of the tree structures extracted from the raw file.
This struct specifies the while expression Used to represent a while construct.
#define ATTR_MACRO(r, data, elem)
Memory tags used in tree-ssa to represent memory locations in virtual SSA.
Represents a type expression that will be expanded into a list of types when instantiated with one or...
#define THROW_ASSERT(cond, str_expr)
helper function used to check an assert and if needed to throw an error in a standard way ...