PandA-2024.02
|
Classes specification of the tree_node data structures. More...
#include "config_HAVE_FROM_PRAGMA_BUILT.hpp"
#include "config_HAVE_UNORDERED.hpp"
#include <cstddef>
#include <functional>
#include <iosfwd>
#include <list>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "custom_map.hpp"
#include "custom_set.hpp"
#include "exceptions.hpp"
#include "panda_types.hpp"
#include "refcount.hpp"
#include "tree_common.hpp"
#include "visitor.hpp"
Go to the source code of this file.
Data Structures | |
class | TreeNodeMap< value > |
A map with key tree_nodeRef. More... | |
class | tree_node_visitor |
class | tree_node |
Abstract pure class for the tree structure. More... | |
class | TreeNodeConstSorter |
class | TreeNodeConstSet |
A set of const tree node. More... | |
class | TreeNodeSorter |
A set of tree node. More... | |
class | TreeNodeSet |
class | TreeNodeMap< value > |
A map with key tree_nodeRef. More... | |
struct | WeightedNode |
struct definition of common part of WeightedNode (gimple_assign, expr_node) More... | |
struct | attr |
struct definition of the field attr on function_decl, field_decl, var_decl tree node. More... | |
struct | srcp |
struct definition of the source position. More... | |
struct | decl_node |
struct definition of the declaration node structures. More... | |
struct | expr_node |
struct definition of the common part of an expression More... | |
struct | PointToSolution |
This struct specifies a point-to solution. More... | |
struct | gimple_node |
struct definition of the common part of a gimple with virtual operands More... | |
struct | unary_expr |
struct definition of the unary node structures. More... | |
struct | binary_expr |
struct definition of the binary node structures. More... | |
struct | ternary_expr |
struct definition of the ternary node structures. More... | |
struct | quaternary_expr |
struct definition of the Quaternary node structures. More... | |
struct | type_node |
struct definition of the type node structures. More... | |
struct | memory_tag |
Memory tags used in tree-ssa to represent memory locations in virtual SSA. More... | |
struct | cst_node |
This struct specifies super class for constant nodes. More... | |
struct | error_mark |
Any erroneous construct is parsed into a node of this type. More... | |
struct | array_type |
struct definition of the array_type tree node. More... | |
struct | gimple_asm |
This struct specifies the gimple_asm node. More... | |
struct | baselink |
This struct represents a reference to a member function or member functions from a base class. More... | |
struct | gimple_bind |
GIMPLE_BIND <VARS, BLOCK, BODY> represents a lexical scope. More... | |
struct | binfo |
This struct specifies the binfo node. More... | |
struct | block |
This struct specifies the block node. More... | |
struct | call_expr |
This struct specifies the call_expr node. More... | |
struct | aggr_init_expr |
AGGR_INIT_EXPRs have a variably-sized representation similar to that of CALL_EXPRs. More... | |
struct | gimple_call |
This struct specifies the gimple_call node. More... | |
struct | case_label_expr |
This struct specifies the case_label_expr node. More... | |
struct | cast_expr |
This struct specifies the cast_expr node. More... | |
struct | type_pack_expansion |
Represents a type expression that will be expanded into a list of types when instantiated with one or more argument packs. More... | |
struct | expr_pack_expansion |
Represents an expression that will be expanded into a list of expressions when instantiated with one or more argument packs. More... | |
struct | complex_cst |
This struct specifies the complex_cst node. More... | |
struct | complex_type |
struct definition of the complex_type tree node. More... | |
struct | gimple_cond |
This struct specifies the gimple_cond node. More... | |
struct | const_decl |
struct definition of the const_decl tree node. More... | |
struct | constructor |
Constructor: return an aggregate value made from specified components. More... | |
struct | enumeral_type |
struct definition of the integer_type tree node. More... | |
struct | expr_stmt |
This struct represent a statement expression. More... | |
struct | field_decl |
struct definition of the field_decl tree node. More... | |
struct | function_decl |
struct definition of the function_decl tree node. More... | |
struct | function_type |
struct definition of the function_type tree node. More... | |
struct | gimple_assign |
This struct specifies the gimple_assign node (GCC 4.3 tree node). More... | |
struct | gimple_nop |
struct | gimple_goto |
This struct specifies the gimple_goto node. More... | |
struct | handler |
A HANDLER wraps a catch handler for the HANDLER_TYPE. More... | |
struct | identifier_node |
struct definition of the function_decl tree node. More... | |
struct | integer_cst |
This struct specifies the integer_cst node. More... | |
struct | integer_type |
struct definition of the integer_type tree node. More... | |
struct | gimple_label |
This struct specifies the gimple_label node. More... | |
struct | method_type |
struct definition of the method_type tree node. More... | |
struct | namespace_decl |
struct definition of the label_decl tree node. More... | |
struct | overload |
This struct represents a list-like node for chaining overloading candidates. More... | |
struct | parm_decl |
struct definition of the parm_decl tree node. More... | |
struct | gimple_phi |
This struct specifies the gimple_phi node. More... | |
struct | gimple_predict |
This struct specifies a hint for branch prediction. More... | |
struct | pointer_type |
struct definition of the pointer_type tree node. More... | |
struct | real_cst |
This struct specifies the real_cst node. More... | |
struct | real_type |
struct definition of the real_type tree node. More... | |
struct | record_type |
struct definition of the record_type tree node. More... | |
struct | reference_type |
struct definition of the reference_type tree node. More... | |
struct | result_decl |
struct definition of the result_decl tree node. More... | |
struct | gimple_resx |
struct | gimple_return |
This struct specifies the gimple_return node. More... | |
struct | return_stmt |
This struct represent a 'return' statement. More... | |
struct | scope_ref |
This struct specifies reference to particular overloaded struct method The tree walker structure of this node is: #(TOK_SCOPE_REF) More... | |
struct | ssa_name |
This struct specifies the ssa_name node. More... | |
struct | statement_list |
This struct specifies the statement_list node. More... | |
struct | string_cst |
This struct specifies the string_cst node. More... | |
struct | gimple_switch |
GIMPLE_SWITCH <INDEX, DEFAULT_LAB, LAB1, ..., LABN> represents the multiway branch: More... | |
struct | target_expr |
This struct implements the target_expr node. More... | |
struct | target_mem_ref |
Low-level memory addressing. More... | |
struct | target_mem_ref461 |
Low-level memory addressing. More... | |
struct | template_decl |
struct definition of the template_decl tree node. More... | |
struct | template_parm_index |
struct | type_argument_pack |
Represents an argument pack of types (or templates). More... | |
struct | nontype_argument_pack |
struct | tree_list |
This struct specifies the tree_list node. More... | |
struct | tree_vec |
This struct specifies the tree_vec node. More... | |
struct | try_block |
This struct represents a try-block statement. More... | |
struct | type_decl |
struct definition of the type_decl tree node. More... | |
struct | union_type |
struct definition of the union_type tree node. More... | |
struct | var_decl |
struct definition of the label_decl tree node. More... | |
struct | vector_cst |
This struct specifies the vector_cst node. More... | |
struct | vector_type |
struct definition of the vector_type tree node. More... | |
struct | lut_expr |
This struct specifies the lut_expr node. More... | |
Macros | |
#define | GET_KIND_TEXT(meth) |
Macro which defines the get_kind_text function that returns the parameter as a string. More... | |
#define | NON_LEAF_TREE_NODES |
#define | VISITED_OBJ_SEQ1 NON_LEAF_TREE_NODES UNARY_EXPRESSION_TREE_NODES BINARY_EXPRESSION_TREE_NODES TERNARY_EXPRESSION_TREE_NODES |
sequence of all objects More... | |
#define | VISITED_OBJ_SEQ2 |
#define | OBJ_SPECIALIZED_SEQ |
sequence of obj that have to be specialized More... | |
#define | OBJ_NOT_SPECIALIZED_SEQ |
#define | GET_NODE(t) |
Macro used to hide implementation details when accessing a tree_node from another tree_node. More... | |
#define | GET_CONST_NODE(t) |
#define | GET_INDEX_NODE(t) (GET_NODE(t))->index |
Macro used to hide implementation details when accessing a tree_node from another tree_node. More... | |
#define | GET_INDEX_CONST_NODE(t) (GET_CONST_NODE(t))->index |
#define | CASE_UNARY_EXPRESSION |
This macro collects all case labels for unary_expr objects. More... | |
#define | CASE_NON_ADDR_UNARY_EXPRESSION |
This macro collects all case labels for unary_expr objects. More... | |
#define | CASE_BINARY_EXPRESSION |
This macro collects all case labels for binary_expr objects. More... | |
#define | CASE_TERNARY_EXPRESSION |
This macro collects all case labels for ternary_expr objects. More... | |
#define | CASE_QUATERNARY_EXPRESSION |
This macro collects all case labels for quaternary_expr objects. More... | |
#define | CASE_TYPE_NODES |
This macro collects all case labels for type objects. More... | |
#define | CASE_PRAGMA_NODES |
This macro collects all case labels for pragma objects. More... | |
#define | CASE_FAKE_NODES |
This macro collects all case labels for fake or empty nodes. More... | |
#define | CASE_CPP_NODES |
This macro collects all case labels for cpp nodes. More... | |
#define | CASE_DECL_NODES |
NOTE that cast_expr is a unary expression but it could not be included in the CASE_UNARY_EXPRESSION because the operand could be null. More... | |
#define | CASE_CST_NODES |
This macro collects all case labels for cast nodes. More... | |
#define | CASE_GIMPLE_NODES |
This macro collects all cases labels for gimple nodes. More... | |
#define | CREATE_TREE_NODE_CLASS(class_name, superclass) |
macro to create simple tree classes More... | |
Typedefs | |
using | tree_nodeRef = refcount< tree_node > |
RefCount type definition of the tree_node class structure. More... | |
using | tree_nodeConstRef = refcount< const tree_node > |
using | PointToSolutionRef = refcount< PointToSolution > |
Functions | |
CREATE_TREE_NODE_CLASS (abs_expr, unary_expr) | |
This struct specifies the abs_expr node. More... | |
CREATE_TREE_NODE_CLASS (addr_expr, unary_expr) | |
This struct specifies the addr_expr node. More... | |
CREATE_TREE_NODE_CLASS (array_range_ref, quaternary_expr) | |
struct describing an array range. More... | |
CREATE_TREE_NODE_CLASS (array_ref, quaternary_expr) | |
Array indexing. More... | |
CREATE_TREE_NODE_CLASS (alignof_expr, unary_expr) | |
This struct represent alignof_expr. More... | |
CREATE_TREE_NODE_CLASS (arrow_expr, unary_expr) | |
This struct represent arrow_expr. More... | |
CREATE_TREE_NODE_CLASS (assert_expr, binary_expr) | |
This struct specifies the assert_expr node. More... | |
CREATE_TREE_NODE_CLASS (bit_and_expr, binary_expr) | |
This struct specifies the bit_and_expr node. More... | |
CREATE_TREE_NODE_CLASS (bit_field_ref, ternary_expr) | |
This struct specifies the bit_field_ref node. More... | |
CREATE_TREE_NODE_CLASS (bit_ior_expr, binary_expr) | |
This struct specifies the bit_ior_expr node. More... | |
CREATE_TREE_NODE_CLASS (bit_ior_concat_expr, ternary_expr) | |
This struct specifies a concatenation between in1 and in2 using in3 bits. More... | |
CREATE_TREE_NODE_CLASS (bit_not_expr, unary_expr) | |
This struct specifies the bit_not_expr node. More... | |
CREATE_TREE_NODE_CLASS (bit_xor_expr, binary_expr) | |
This struct specifies the bit_xor_expr node. More... | |
CREATE_TREE_NODE_CLASS (boolean_type, type_node) | |
struct definition of the boolean_type tree node. More... | |
CREATE_TREE_NODE_CLASS (buffer_ref, unary_expr) | |
This struct specifies the buffer_ref node. More... | |
CREATE_TREE_NODE_CLASS (card_expr, unary_expr) | |
This struct specifies the card_expr node. More... | |
CREATE_TREE_NODE_CLASS (catch_expr, binary_expr) | |
This struct specifies the catch_expr node. More... | |
CREATE_TREE_NODE_CLASS (ceil_div_expr, binary_expr) | |
This struct specifies the ceil_div_expr node. More... | |
CREATE_TREE_NODE_CLASS (ceil_mod_expr, binary_expr) | |
This struct specifies the ceil_mod_expr node. More... | |
CREATE_TREE_NODE_CLASS (CharType, type_node) | |
struct definition of the CharType tree node. More... | |
CREATE_TREE_NODE_CLASS (nullptr_type, type_node) | |
The C++ decltype(nullptr) type. More... | |
CREATE_TREE_NODE_CLASS (cleanup_point_expr, unary_expr) | |
This struct specifies the cleanup_point_expr node. More... | |
CREATE_TREE_NODE_CLASS (complex_expr, binary_expr) | |
This struct specifies the complex_expr node. More... | |
CREATE_TREE_NODE_CLASS (component_ref, ternary_expr) | |
Value is structure or union component. More... | |
CREATE_TREE_NODE_CLASS (compound_expr, binary_expr) | |
This struct specifies the compound_expr node. More... | |
CREATE_TREE_NODE_CLASS (cond_expr, ternary_expr) | |
This struct specifies the cond_expr node. More... | |
CREATE_TREE_NODE_CLASS (conj_expr, unary_expr) | |
This struct specifies the conj_expr node. More... | |
CREATE_TREE_NODE_CLASS (convert_expr, unary_expr) | |
This struct specifies the convert_expr node. More... | |
CREATE_TREE_NODE_CLASS (ctor_initializer, tree_node) | |
CTOR_INITIALIZER is a placeholder in template code for a call to setup_vtbl_pointer (and appears in all functions, not just ctors) More... | |
CREATE_TREE_NODE_CLASS (eh_filter_expr, binary_expr) | |
This struct specifies the eh_filter_expr node. More... | |
CREATE_TREE_NODE_CLASS (eq_expr, binary_expr) | |
This struct specifies the eq_expr node. More... | |
CREATE_TREE_NODE_CLASS (exact_div_expr, binary_expr) | |
This struct specifies the exact_div_expr node. More... | |
CREATE_TREE_NODE_CLASS (exit_expr, unary_expr) | |
This struct specifies the exit_expr node. More... | |
CREATE_TREE_NODE_CLASS (fdesc_expr, binary_expr) | |
This struct specifies the fdesc_expr node. More... | |
CREATE_TREE_NODE_CLASS (fix_ceil_expr, unary_expr) | |
This struct specifies the fix_ceil_expr node. More... | |
CREATE_TREE_NODE_CLASS (fix_floor_expr, unary_expr) | |
This struct specifies the fix_floor_expr node. More... | |
CREATE_TREE_NODE_CLASS (fix_round_expr, unary_expr) | |
This struct specifies the fix_round_expr node. More... | |
CREATE_TREE_NODE_CLASS (fix_trunc_expr, unary_expr) | |
This struct specifies the fix_trunc_expr node. More... | |
CREATE_TREE_NODE_CLASS (float_expr, unary_expr) | |
This struct specifies the float_expr node. More... | |
CREATE_TREE_NODE_CLASS (floor_div_expr, binary_expr) | |
This struct specifies the floor_div_expr node. More... | |
CREATE_TREE_NODE_CLASS (floor_mod_expr, binary_expr) | |
This struct specifies the floor_mod_expr node. More... | |
CREATE_TREE_NODE_CLASS (ge_expr, binary_expr) | |
This struct specifies the ge_expr node. More... | |
CREATE_TREE_NODE_CLASS (goto_subroutine, binary_expr) | |
This struct specifies the goto_subroutine node. More... | |
CREATE_TREE_NODE_CLASS (gt_expr, binary_expr) | |
This struct specifies the gt_expr node. More... | |
CREATE_TREE_NODE_CLASS (imagpart_expr, unary_expr) | |
This struct specifies the imagpart_expr node. More... | |
CREATE_TREE_NODE_CLASS (indirect_ref, unary_expr) | |
This struct specifies the indirect_ref node. More... | |
CREATE_TREE_NODE_CLASS (misaligned_indirect_ref, unary_expr) | |
This struct specifies the misaligned version of the indirect_ref node. More... | |
CREATE_TREE_NODE_CLASS (in_expr, binary_expr) | |
This struct specifies the in_expr node. More... | |
CREATE_TREE_NODE_CLASS (init_expr, binary_expr) | |
This struct specifies the init_expr node. More... | |
CREATE_TREE_NODE_CLASS (label_decl, decl_node) | |
struct definition of the label_decl tree node. More... | |
CREATE_TREE_NODE_CLASS (lang_type, type_node) | |
struct definition of the lang_type tree node. More... | |
CREATE_TREE_NODE_CLASS (le_expr, binary_expr) | |
This struct specifies the le_expr node. More... | |
CREATE_TREE_NODE_CLASS (loop_expr, unary_expr) | |
A loop. More... | |
CREATE_TREE_NODE_CLASS (lrotate_expr, binary_expr) | |
This struct specifies the lrotate_expr node. More... | |
CREATE_TREE_NODE_CLASS (lshift_expr, binary_expr) | |
This struct specifies the lshift_expr node. More... | |
CREATE_TREE_NODE_CLASS (lt_expr, binary_expr) | |
This struct specifies the lt_expr node. More... | |
CREATE_TREE_NODE_CLASS (ltgt_expr, binary_expr) | |
This struct specifies the ltgt_expr node. More... | |
CREATE_TREE_NODE_CLASS (max_expr, binary_expr) | |
This struct specifies the max_expr node. More... | |
CREATE_TREE_NODE_CLASS (mem_ref, binary_expr) | |
Memory addressing. More... | |
CREATE_TREE_NODE_CLASS (min_expr, binary_expr) | |
This struct specifies the min_expr node. More... | |
CREATE_TREE_NODE_CLASS (minus_expr, binary_expr) | |
This struct specifies the minus_expr node. More... | |
CREATE_TREE_NODE_CLASS (modify_expr, binary_expr) | |
This struct specifies the modify_expr node. More... | |
CREATE_TREE_NODE_CLASS (modop_expr, expr_node) | |
This struct represent one of the bunch of tree codes for the initial, superficial parsing of templates. More... | |
CREATE_TREE_NODE_CLASS (mult_expr, binary_expr) | |
This struct specifies the mult_expr node. More... | |
CREATE_TREE_NODE_CLASS (mult_highpart_expr, binary_expr) | |
This struct specifies the mult_highpart_expr node. More... | |
CREATE_TREE_NODE_CLASS (ne_expr, binary_expr) | |
This struct specifies the ne_expr node. More... | |
CREATE_TREE_NODE_CLASS (negate_expr, unary_expr) | |
This struct specifies the negate_expr node. More... | |
CREATE_TREE_NODE_CLASS (new_expr, expr_node) | |
This struct represent a 'new' expression. More... | |
CREATE_TREE_NODE_CLASS (non_lvalue_expr, unary_expr) | |
This struct specifies the non_lvalue_expr node. More... | |
CREATE_TREE_NODE_CLASS (nop_expr, unary_expr) | |
This struct specifies the nop_expr node. More... | |
CREATE_TREE_NODE_CLASS (obj_type_ref, ternary_expr) | |
Used to represent lookup of runtime type dependent data. More... | |
CREATE_TREE_NODE_CLASS (offset_type, type_node) | |
struct definition of the offset_type tree node. More... | |
CREATE_TREE_NODE_CLASS (ordered_expr, binary_expr) | |
This struct specifies the ordered_expr node. More... | |
CREATE_TREE_NODE_CLASS (placeholder_expr, expr_node) | |
This struct specifies the placeholder_expr node. More... | |
CREATE_TREE_NODE_CLASS (plus_expr, binary_expr) | |
This struct specifies the plus_expr node. More... | |
CREATE_TREE_NODE_CLASS (pointer_plus_expr, binary_expr) | |
Pointer addition. More... | |
CREATE_TREE_NODE_CLASS (postdecrement_expr, binary_expr) | |
This struct specifies the postdecrement_expr node. More... | |
CREATE_TREE_NODE_CLASS (postincrement_expr, binary_expr) | |
This struct specifies the postincrement_expr node. More... | |
CREATE_TREE_NODE_CLASS (predecrement_expr, binary_expr) | |
This struct specifies the predecrement_expr node. More... | |
CREATE_TREE_NODE_CLASS (preincrement_expr, binary_expr) | |
This struct specifies the preincrement_expr node. More... | |
CREATE_TREE_NODE_CLASS (qual_union_type, type_node) | |
struct definition of the qual_union_type tree node. More... | |
CREATE_TREE_NODE_CLASS (range_expr, binary_expr) | |
This struct specifies the range_expr node. More... | |
CREATE_TREE_NODE_CLASS (paren_expr, unary_expr) | |
Represents a re-association barrier for floating point expressions like explicit parenthesis in fortran. More... | |
CREATE_TREE_NODE_CLASS (rdiv_expr, binary_expr) | |
This struct specifies the rdiv_expr node. More... | |
CREATE_TREE_NODE_CLASS (realpart_expr, unary_expr) | |
This struct specifies the realpart_expr node. More... | |
CREATE_TREE_NODE_CLASS (reduc_max_expr, unary_expr) | |
Reduction operations. More... | |
CREATE_TREE_NODE_CLASS (reduc_min_expr, unary_expr) | |
CREATE_TREE_NODE_CLASS (reduc_plus_expr, unary_expr) | |
CREATE_TREE_NODE_CLASS (reference_expr, unary_expr) | |
This struct specifies the reference_expr node. More... | |
CREATE_TREE_NODE_CLASS (reinterpret_cast_expr, unary_expr) | |
This struct represent one of tree codes for the initial, superficial parsing of templates. More... | |
CREATE_TREE_NODE_CLASS (round_div_expr, binary_expr) | |
This struct specifies the round_div_expr node. More... | |
CREATE_TREE_NODE_CLASS (round_mod_expr, binary_expr) | |
This struct specifies the round_mod_expr node. More... | |
CREATE_TREE_NODE_CLASS (rrotate_expr, binary_expr) | |
This struct specifies the rrotate_expr node. More... | |
CREATE_TREE_NODE_CLASS (rshift_expr, binary_expr) | |
This struct specifies the rshift_expr node. More... | |
CREATE_TREE_NODE_CLASS (save_expr, ternary_expr) | |
This struct specifies the save_expr node. More... | |
CREATE_TREE_NODE_CLASS (set_le_expr, binary_expr) | |
This struct specifies the set_le_expr node. More... | |
CREATE_TREE_NODE_CLASS (set_type, type_node) | |
struct definition of the set_type tree node. More... | |
CREATE_TREE_NODE_CLASS (sizeof_expr, unary_expr) | |
This struct specifies the sizeof_expr node. More... | |
CREATE_TREE_NODE_CLASS (static_cast_expr, unary_expr) | |
This struct specifies the static_cast_expr node. More... | |
CREATE_TREE_NODE_CLASS (template_id_expr, expr_node) | |
This struct represents a template identifier. More... | |
CREATE_TREE_NODE_CLASS (template_type_parm, type_node) | |
struct definition of the template_type_parm tree node. More... | |
CREATE_TREE_NODE_CLASS (ternary_plus_expr, ternary_expr) | |
This struct specifies the a + b + c node. More... | |
CREATE_TREE_NODE_CLASS (ternary_pm_expr, ternary_expr) | |
This struct specifies the a + b - c node. More... | |
CREATE_TREE_NODE_CLASS (ternary_mp_expr, ternary_expr) | |
This struct specifies the a - b + c node. More... | |
CREATE_TREE_NODE_CLASS (ternary_mm_expr, ternary_expr) | |
This struct specifies the a - b - c node. More... | |
CREATE_TREE_NODE_CLASS (throw_expr, unary_expr) | |
This struct represents a throw expression. More... | |
CREATE_TREE_NODE_CLASS (trait_expr, tree_node) | |
Represents a trait expression during template expansion. More... | |
CREATE_TREE_NODE_CLASS (translation_unit_decl, decl_node) | |
struct definition of the translation_unit_decl tree node. More... | |
CREATE_TREE_NODE_CLASS (trunc_div_expr, binary_expr) | |
This struct specifies the trunc_div_expr node. More... | |
CREATE_TREE_NODE_CLASS (trunc_mod_expr, binary_expr) | |
This struct specifies the trunc_mod_expr node. More... | |
CREATE_TREE_NODE_CLASS (truth_and_expr, binary_expr) | |
This struct specifies the truth_and_expr node. More... | |
CREATE_TREE_NODE_CLASS (truth_andif_expr, binary_expr) | |
This struct specifies the truth_andif_expr node. More... | |
CREATE_TREE_NODE_CLASS (truth_not_expr, unary_expr) | |
This struct specifies the truth_not_expr node. More... | |
CREATE_TREE_NODE_CLASS (truth_or_expr, binary_expr) | |
This struct specifies the truth_or_expr node. More... | |
CREATE_TREE_NODE_CLASS (truth_orif_expr, binary_expr) | |
This struct specifies the truth_orif_expr node. More... | |
CREATE_TREE_NODE_CLASS (truth_xor_expr, binary_expr) | |
This struct specifies the truth_xor_expr node. More... | |
CREATE_TREE_NODE_CLASS (try_catch_expr, binary_expr) | |
This struct specifies the try_catch_expr node. More... | |
CREATE_TREE_NODE_CLASS (try_finally, binary_expr) | |
This struct specifies the try_finally node. More... | |
CREATE_TREE_NODE_CLASS (typename_type, type_node) | |
struct definition of the typename_type tree node. More... | |
CREATE_TREE_NODE_CLASS (uneq_expr, binary_expr) | |
This struct specifies the uneq_expr node. More... | |
CREATE_TREE_NODE_CLASS (unge_expr, binary_expr) | |
This struct specifies the unge_expr node. More... | |
CREATE_TREE_NODE_CLASS (ungt_expr, binary_expr) | |
This struct specifies the ungt_expr node. More... | |
CREATE_TREE_NODE_CLASS (unle_expr, binary_expr) | |
This struct specifies the unle_expr node. More... | |
CREATE_TREE_NODE_CLASS (unlt_expr, binary_expr) | |
This struct specifies the unlt_expr node. More... | |
CREATE_TREE_NODE_CLASS (unordered_expr, binary_expr) | |
This struct specifies the unordered_expr node. More... | |
CREATE_TREE_NODE_CLASS (unsave_expr, unary_expr) | |
This struct specifies the unsave_expr node. More... | |
CREATE_TREE_NODE_CLASS (using_decl, decl_node) | |
A using declaration. More... | |
CREATE_TREE_NODE_CLASS (va_arg_expr, unary_expr) | |
This struct specifies the va_arg_expr node. More... | |
CREATE_TREE_NODE_CLASS (dot_prod_expr, ternary_expr) | |
Widening dot-product. More... | |
CREATE_TREE_NODE_CLASS (vec_cond_expr, ternary_expr) | |
Vector conditional expression. More... | |
CREATE_TREE_NODE_CLASS (vec_perm_expr, ternary_expr) | |
Vector permutation expression. More... | |
CREATE_TREE_NODE_CLASS (vec_lshift_expr, binary_expr) | |
Whole vector left/right shift in bits. More... | |
CREATE_TREE_NODE_CLASS (vec_rshift_expr, binary_expr) | |
CREATE_TREE_NODE_CLASS (widen_mult_hi_expr, binary_expr) | |
Widening vector multiplication. More... | |
CREATE_TREE_NODE_CLASS (widen_mult_lo_expr, binary_expr) | |
CREATE_TREE_NODE_CLASS (vec_unpack_hi_expr, unary_expr) | |
Unpack (extract and promote/widen) the high/low elements of the input vector into the output vector. More... | |
CREATE_TREE_NODE_CLASS (vec_unpack_lo_expr, unary_expr) | |
CREATE_TREE_NODE_CLASS (vec_unpack_float_hi_expr, unary_expr) | |
Unpack (extract) the high/low elements of the input vector, convert fixed point values to floating point and widen elements into the output vector. More... | |
CREATE_TREE_NODE_CLASS (vec_unpack_float_lo_expr, unary_expr) | |
CREATE_TREE_NODE_CLASS (vec_pack_trunc_expr, binary_expr) | |
Pack (demote/narrow and merge) the elements of the two input vectors into the output vector using truncation/saturation. More... | |
CREATE_TREE_NODE_CLASS (vec_pack_sat_expr, binary_expr) | |
CREATE_TREE_NODE_CLASS (vec_pack_fix_trunc_expr, binary_expr) | |
Convert floating point values of the two input vectors to integer and pack (narrow and merge) the elements into the output vector. More... | |
CREATE_TREE_NODE_CLASS (vec_extracteven_expr, binary_expr) | |
Extract even/odd fields from vectors. More... | |
CREATE_TREE_NODE_CLASS (vec_extractodd_expr, binary_expr) | |
CREATE_TREE_NODE_CLASS (vec_interleavehigh_expr, binary_expr) | |
Merge input vectors interleaving their fields. More... | |
CREATE_TREE_NODE_CLASS (vec_interleavelow_expr, binary_expr) | |
CREATE_TREE_NODE_CLASS (vec_new_expr, expr_node) | |
This struct represents a vector new expression. More... | |
CREATE_TREE_NODE_CLASS (void_cst, cst_node) | |
VOID_CST node. More... | |
CREATE_TREE_NODE_CLASS (view_convert_expr, unary_expr) | |
This struct specifies the view_convert_expr node. More... | |
CREATE_TREE_NODE_CLASS (void_type, type_node) | |
struct definition of the void_type tree node. More... | |
CREATE_TREE_NODE_CLASS (vtable_ref, ternary_expr) | |
This struct specifies the vtable_ref node. More... | |
CREATE_TREE_NODE_CLASS (with_cleanup_expr, ternary_expr) | |
This struct specifies the with_cleanup_expr node. More... | |
CREATE_TREE_NODE_CLASS (with_size_expr, binary_expr) | |
Records the size for an expression of variable size type. More... | |
CREATE_TREE_NODE_CLASS (widen_sum_expr, binary_expr) | |
Widening summation. More... | |
CREATE_TREE_NODE_CLASS (widen_mult_expr, binary_expr) | |
Widening multiplication. More... | |
CREATE_TREE_NODE_CLASS (extract_bit_expr, binary_expr) | |
extract_bit_expr extracts a bit value from a SSA/integer const op0 is the SSA variable op1 is the bit position return a Boolean value More... | |
CREATE_TREE_NODE_CLASS (sat_plus_expr, binary_expr) | |
This struct specifies the sat_plus_expr node. More... | |
CREATE_TREE_NODE_CLASS (sat_minus_expr, binary_expr) | |
This struct specifies the sat_minus_expr node. More... | |
CREATE_TREE_NODE_CLASS (fshl_expr, ternary_expr) | |
This struct specifies the fshl_expr node. More... | |
CREATE_TREE_NODE_CLASS (fshr_expr, ternary_expr) | |
This struct specifies the fshr_expr node. More... | |
CREATE_TREE_NODE_CLASS (extractvalue_expr, binary_expr) | |
This struct specifies the extractvalue_expr node. More... | |
CREATE_TREE_NODE_CLASS (insertvalue_expr, ternary_expr) | |
This struct specifies the insertvalue_expr node. More... | |
CREATE_TREE_NODE_CLASS (extractelement_expr, binary_expr) | |
This struct specifies the extractelement_expr node. More... | |
CREATE_TREE_NODE_CLASS (insertelement_expr, ternary_expr) | |
This struct specifies the insertelement_expr node. More... | |
CREATE_TREE_NODE_CLASS (frem_expr, binary_expr) | |
This struct specifies the frem node. More... | |
forward declarations | |
Autoheader include | |
REF_FORWARD_DECL (bloc) | |
REF_FORWARD_DECL (tree_manager) | |
CONSTREF_FORWARD_DECL (tree_node) | |
REF_FORWARD_DECL (tree_node) | |
REF_FORWARD_DECL (Range) | |
Classes specification of the tree_node data structures.
Classes used to described the tree nodes imported from the raw file. The first version of this code is due to Fabrizio Ferrandi, Katia Turati, Giacomo Galbiati
Definition in file tree_node.hpp.
#define CASE_BINARY_EXPRESSION |
This macro collects all case labels for binary_expr objects.
Definition at line 463 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), determine_memory_accesses::analyze_node(), operations_cfg_computation::build_operation_recursive(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), Vectorize::ClassifyTreeNode(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), tree_helper::ComputeSsaUses(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), tree_manager::erase_usage_info(), UnaryOpNode::eval(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_manager::insert_usage_info(), BehavioralHelper::is_a_constant(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsVariableType(), tree_helper::LastStatement(), CallGraphBuiltinCall::lookForBuiltinCall(), Vectorize::LookForScalar(), BBWriter::operator()(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), tree_helper::Size(), BitLatticeManipulator::Size(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_CPP_NODES |
This macro collects all case labels for cpp nodes.
Definition at line 644 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), check_for_simple_pointer_arithmetic(), simple_code_motion::CheckMovable(), Vectorize::ClassifyTreeNode(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), tree_helper::ComputeSsaUses(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), mux_connection_binding::determine_connection(), IR_lowering::division_by_a_constant(), tree_manager::erase_usage_info(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), Bit_Value::forward_transfer(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_manager::insert_usage_info(), BehavioralHelper::is_a_constant(), tree_helper::is_packed_access(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsPointerResolved(), tree_helper::IsVariableType(), tree_helper::LastStatement(), CallGraphBuiltinCall::lookForBuiltinCall(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), tree_helper::Size(), BitLatticeManipulator::Size(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_CST_NODES |
This macro collects all case labels for cast nodes.
Definition at line 689 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), Bit_Value::backward_transfer(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), check_for_simple_pointer_arithmetic(), simple_code_motion::CheckMovable(), Vectorize::ClassifyTreeNode(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), IR_lowering::division_by_a_constant(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_helper::is_packed_access(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::LastStatement(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), BitLatticeManipulator::Size(), SymbRange::solveFuture(), and Vectorize::Transform().
#define CASE_DECL_NODES |
NOTE that cast_expr is a unary expression but it could not be included in the CASE_UNARY_EXPRESSION because the operand could be null.
This macro collects all case labels for declaration nodes
Definition at line 672 of file tree_node.hpp.
Referenced by determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), simple_code_motion::CheckMovable(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), IR_lowering::division_by_a_constant(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), Bit_Value::forward_transfer(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::LastStatement(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), BitLatticeManipulator::Size(), SymbRange::solveFuture(), and Vectorize::Transform().
#define CASE_FAKE_NODES |
This macro collects all case labels for fake or empty nodes.
Definition at line 635 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), check_for_simple_pointer_arithmetic(), simple_code_motion::CheckMovable(), Vectorize::ClassifyTreeNode(), tree_manager::collapse_into(), tree_helper::ComputeSsaUses(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_node_dup::create_tree_node(), tree_manipulation::create_unary_operation(), mux_connection_binding::determine_connection(), IR_lowering::division_by_a_constant(), tree_manager::erase_usage_info(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), Bit_Value::forward_transfer(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_manager::insert_usage_info(), BehavioralHelper::is_a_constant(), tree_helper::is_packed_access(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsPointerResolved(), tree_helper::IsVariableType(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), tree_helper::Size(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_GIMPLE_NODES |
This macro collects all cases labels for gimple nodes.
Definition at line 700 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), simple_code_motion::CheckMovable(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), mux_connection_binding::determine_connection(), IR_lowering::division_by_a_constant(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), Bit_Value::forward_transfer(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), BehavioralHelper::is_a_constant(), tree_helper::is_packed_access(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsPointerResolved(), tree_helper::IsVariableType(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_NON_ADDR_UNARY_EXPRESSION |
This macro collects all case labels for unary_expr objects.
Its use it is quite simple: just add the following line in the switch statement case CASE_UNARY_EXPRESSION:
Definition at line 419 of file tree_node.hpp.
Referenced by BehavioralHelper::PrintNode().
#define CASE_PRAGMA_NODES |
This macro collects all case labels for pragma objects.
Definition at line 610 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), check_for_simple_pointer_arithmetic(), simple_code_motion::CheckMovable(), Vectorize::ClassifyTreeNode(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), tree_helper::ComputeSsaUses(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), mux_connection_binding::determine_connection(), IR_lowering::division_by_a_constant(), tree_manager::erase_usage_info(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), Bit_Value::forward_transfer(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_manager::insert_usage_info(), BehavioralHelper::is_a_constant(), tree_helper::is_packed_access(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsPointerResolved(), tree_helper::IsVariableType(), tree_helper::LastStatement(), CallGraphBuiltinCall::lookForBuiltinCall(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), tree_manager::RecursiveReplaceTreeNode(), tree_helper::Size(), BitLatticeManipulator::Size(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_QUATERNARY_EXPRESSION |
This macro collects all case labels for quaternary_expr objects.
Definition at line 574 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), operations_cfg_computation::build_operation_recursive(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), simple_code_motion::CheckMovable(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), tree_helper::ComputeSsaUses(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), IR_lowering::division_by_a_constant(), tree_manager::erase_usage_info(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_manager::insert_usage_info(), BehavioralHelper::is_a_constant(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsVariableType(), tree_helper::LastStatement(), CallGraphBuiltinCall::lookForBuiltinCall(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_TERNARY_EXPRESSION |
This macro collects all case labels for ternary_expr objects.
Definition at line 550 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), tree_helper::ComputeSsaUses(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), IR_lowering::division_by_a_constant(), tree_manager::erase_usage_info(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_manager::insert_usage_info(), BehavioralHelper::is_a_constant(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsVariableType(), tree_helper::LastStatement(), CallGraphBuiltinCall::lookForBuiltinCall(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), tree_helper::Size(), BitLatticeManipulator::Size(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_TYPE_NODES |
This macro collects all case labels for type objects.
Definition at line 581 of file tree_node.hpp.
Referenced by tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetType(), check_for_simple_pointer_arithmetic(), simple_code_motion::CheckMovable(), Vectorize::ClassifyTreeNode(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), tree_helper::ComputeSsaUses(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), mux_connection_binding::determine_connection(), IR_lowering::division_by_a_constant(), tree_manager::erase_usage_info(), UnaryOpNode::eval(), BinaryOpNode::evaluate(), Bit_Value::forward_transfer(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), GimpleWriter::GimpleWriter(), tree_manager::insert_usage_info(), BehavioralHelper::is_a_constant(), tree_helper::is_packed_access(), tree_helper::IsConstant(), tree_helper::IsPointerResolved(), tree_helper::IsVariableType(), tree_helper::LastStatement(), CallGraphBuiltinCall::lookForBuiltinCall(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), tree_helper::op_symbol(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CASE_UNARY_EXPRESSION |
This macro collects all case labels for unary_expr objects.
Its use it is quite simple: just add the following line in the switch statement case CASE_UNARY_EXPRESSION:
Definition at line 371 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeSpeculated(), tree_helper::CGetPointedType(), tree_helper::CGetType(), Vectorize::ClassifyTreeNode(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), tree_helper::ComputeSsaUses(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_unary_operation(), IR_lowering::division_by_a_constant(), tree_manager::erase_usage_info(), BinaryOpNode::evaluate(), BehavioralHelper::get_attributes(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_intermediate_var(), tree_helper::get_pointed_type(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_helper::GetBaseVariable(), tree_helper::GetFunctionReturnType(), BehavioralHelper::GetInit(), application_manager::GetProducedValue(), tree_helper::GetTypeName(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoUp(), tree_manager::insert_usage_info(), tree_helper::IsConstant(), tree_helper::IsPackedType(), tree_helper::IsVariableType(), tree_helper::LastStatement(), CallGraphBuiltinCall::lookForBuiltinCall(), Vectorize::LookForScalar(), Range::makeSatisfyingCmpRegion(), BBWriter::operator()(), SymbRange::print(), BehavioralHelper::print_forward_declaration(), BehavioralHelper::print_type_declaration(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), tree_helper::Size(), BitLatticeManipulator::Size(), SymbRange::solveFuture(), Vectorize::Transform(), and fu_binding::write_init().
#define CREATE_TREE_NODE_CLASS | ( | class_name, | |
superclass | |||
) |
macro to create simple tree classes
Definition at line 720 of file tree_node.hpp.
#define GET_CONST_NODE | ( | t | ) |
Definition at line 347 of file tree_node.hpp.
Referenced by tree_helper::AccessedMaximumBitsize(), tree_helper::AccessedMinimunBitsize(), mux_connection_binding::address_precision(), ssa_name::AddUseStmt(), gimple_node::AddVover(), gimple_node::AddVuse(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), PhiOpt::ApplyIfMerge(), PhiOpt::ApplyIfRemove(), PhiOpt::ApplyMultiMerge(), PhiOpt::ApplyMultiRemove(), IR_lowering::array_ref_lowering(), Bit_Value::backward(), Bit_Value::backward_chain(), Bit_Value::backward_transfer(), BinaryOpNode::BinaryOpNode(), branchOpRecurse(), operations_cfg_computation::build_operation_recursive(), HWCallInjection::buildBuiltinCall(), AllocationInformation::can_be_asynchronous_ram(), cannot_have_struct_parameters(), tree_helper::CGetElements(), tree_helper::CGetFieldTypes(), tree_helper::CGetPointedType(), tree_helper::CGetType(), InterfaceInfer::ChasePointerInterfaceRecurse(), lut_transformation::CHECK_BIN_EXPR_INT_SIZE(), check_for_simple_pointer_arithmetic(), bloc::check_function_call(), short_circuit_taf::check_merging_candidate(), short_circuit_taf::check_phis(), Vectorize::ClassifyTreeNode(), tree_manipulation::CloneFunction(), FunctionCallOpt::compute_cost(), memory::compute_next_base_address(), tree_helper::compute_ssa_uses_rec_ptr(), Vectorize::ComputeFrontendRelationships(), tree_helper::ComputeSsaUses(), BitLatticeManipulator::constructor_bitstring(), constructor_range(), convertUsesToDFSOrdered(), tree_helper::CountPointers(), tree_manipulation::create_binary_operation(), mux_connection_binding::create_connections(), tree_manipulation::create_gimple_call(), short_circuit_taf::create_gimple_cond(), tree_manipulation::create_gimple_modify_stmt(), tree_manipulation::create_parm_decl(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_ssa_name(), tree_manipulation::create_ternary_operation(), tree_node_dup::create_tree_node(), tree_manipulation::create_unary_operation(), lut_transformation::CreateBitSelectionNodeOrCast(), tree_manipulation::CreateCallExpr(), tree_manipulation::CreateNopExpr(), tree_manipulation::CreateUnsigned(), CWriter::DeclareType(), CWriter::DeclareVariable(), Nuutila::delControlDependenceEdges(), mux_connection_binding::determine_connection(), IR_lowering::division_by_a_constant(), Vectorize::DuplicateIncrement(), PhiOpNode::eval(), UnaryOpNode::eval(), BinaryOpNode::eval(), TernaryOpNode::eval(), LoadOpNode::eval(), evaluateBranch(), BitValueIPA::Exec(), CreateAddressTranslation::Exec(), InterfaceInfer::Exec(), tree_helper::extract_array_indexes(), tree_manipulation::ExtractCondition(), fu_binding::fill_array_ref_memory(), memory_allocation::finalize_memory_allocation(), tree_helper::find_obj_type_ref_function(), Vectorize::FixPhis(), Bit_Value::forward(), Bit_Value::forward_transfer(), InterfaceInfer::forwardInterface(), TestbenchGeneration::generate_init_file(), soft_float_cg_ext::generate_interface(), tree_helper::get_array_dim_and_bitsize(), HLS_manager::get_constant_string(), Bit_Value::get_current(), Bit_Value::get_current_or_best(), get_decl_name(), tree_helper::get_integer_cst_value(), BehavioralHelper::get_parameters(), tree_helper::get_required_values(), tree_helper::get_type_index(), tree_helper::get_type_name(), tree_helper::get_used_variables(), tree_helper::GetArrayDimensions(), tree_helper::GetArrayElementSize(), tree_helper::GetBaseVariable(), ValueDFS_Compare::getBlockEdge_local(), getBuiltinFieldTypes(), GetCallArgs(), Nuutila::getComponent(), AllocationInformation::GetCondExprTimeLatency(), AllocationInformation::GetConnectionTime(), tree_helper::GetConstValue(), AllocationInformation::GetCycleLatency(), tree_helper::GetFormalIth(), tree_manager::GetFunction(), tree_helper::GetFunctionName(), tree_helper::GetFunctionReturnType(), tree_helper::GetMangledFunctionName(), BehavioralHelper::GetParameters(), tree_helper::GetParameterTypes(), BehavioralHelper::GetParameterTypes(), application_manager::GetProducedValue(), tree_helper::GetRecordTypeName(), tree_helper::GetSourcePath(), AllocationInformation::GetStatementArea(), tree_helper::GetTemplateTypeName(), AllocationInformation::GetTimeLatency(), AllocationInformation::GetToDspRegisterDelay(), tree_helper::GetTypeName(), tree_helper::GetUnqualifiedType(), AllocationInformation::GetZeroDistanceOperations(), GimpleWriter::GimpleWriter(), MemoryInitializationWriterBase::GoDown(), MemoryInitializationWriterBase::GoNext(), MemoryInitializationWriterBase::GoUp(), CSE::has_memory_access(), FunctionCallOpt::HasConstantArgs(), CSE::hash_check(), tree_helper::HasToBeDeclared(), PhiOpt::IdentifyPattern(), BitLatticeManipulator::inf(), VarNode::init(), Bit_Value::initialize(), Bit_Value::Initialize(), tree_manipulation::InlineFunctionCall(), OrderedBasicBlock::instComesBefore(), parm_decl_taken_address_fix::InternalExec(), FixStructsPassedByValue::InternalExec(), BuiltinWaitCallModuleGenerator::InternalExec(), BuiltinWaitCallNModuleGenerator::InternalExec(), HWCallInjection::InternalExec(), SerializeMutualExclusions::InternalExec(), UnComparisonLowering::InternalExec(), use_counting::InternalExec(), BasicBlocksCfgComputation::InternalExec(), SwitchFix::InternalExec(), FixVdef::InternalExec(), extract_patterns::InternalExec(), BuildVirtualPhi::InternalExec(), mem_dominator_allocation::InternalExec(), eSSA::InternalExec(), rebuild_initialization::InternalExec(), SplitReturn::InternalExec(), compute_implicit_calls::InternalExec(), FunctionCallTypeCleanup::InternalExec(), determine_memory_accesses::InternalExec(), CondExprRestructuring::InternalExec(), commutative_expr_restructuring::InternalExec(), simple_code_motion::InternalExec(), short_circuit_taf::InternalExec(), dead_code_elimination::InternalExec(), CSE::InternalExec(), FunctionCallOpt::InternalExec(), MultipleEntryIfReduction::InternalExec(), lut_transformation::InternalExec(), IR_lowering::InternalExec(), Vectorize::InternalExec(), PhiOpt::InternalExec(), soft_float_cg_ext::InternalExec(), allocation::InternalExec(), tree_helper::is_a_misaligned_vector(), tree_helper::is_a_nop_function_decl(), tree_helper::is_channel(), tree_helper::is_clock(), tree_helper::is_event(), tree_helper::is_in_port(), tree_helper::is_inout_port(), mem_dominator_allocation::is_internal_obj(), is_large_integer(), tree_helper::is_module(), BehavioralHelper::is_named_pointer(), AllocationInformation::is_operation_bounded(), tree_helper::is_out_port(), tree_helper::is_packed_access(), tree_helper::is_port(), tree_helper::is_SC_BIND_PROXY_NIL(), tree_helper::is_signal(), tree_helper::IsAligned(), tree_helper::IsArrayEquivType(), tree_helper::IsArrayType(), tree_helper::IsBooleanType(), commutative_expr_restructuring::IsCommExprChain(), commutative_expr_restructuring::IsCommExprGimple(), tree_helper::IsComplexType(), CondExprRestructuring::IsCondExprChain(), CondExprRestructuring::IsCondExprGimple(), tree_helper::IsConstant(), tree_helper::IsConstType(), tree_helper::IsEnumType(), tree_helper::IsExternDeclaration(), tree_helper::IsFunctionDeclaration(), tree_helper::IsFunctionPointerType(), tree_helper::IsFunctionType(), tree_helper::IsInLibbambu(), tree_helper::IsLoad(), tree_helper::IsLut(), tree_helper::IsPackedType(), tree_helper::IsPointerResolved(), tree_helper::IsPointerType(), tree_helper::IsPositiveIntegerValue(), tree_helper::IsRealType(), tree_helper::IsSameType(), tree_helper::IsSignedIntegerType(), tree_helper::IsStaticDeclaration(), tree_helper::IsStore(), tree_helper::IsStructType(), tree_helper::IsSystemType(), tree_helper::IsUnionType(), tree_helper::IsUnsignedIntegerType(), tree_helper::IsVariableType(), tree_helper::IsVectorType(), tree_helper::IsVoidType(), tree_helper::IsVolatile(), tree_helper::LastStatement(), tree_helper::look_for_binfo_inheritance(), rebuild_initialization2::look_for_ROMs(), Bit_Value::lsb_to_zero(), ParallelMemoryFuBinding::manage_module_ports(), materializeStack(), multi_way_if::MergeCondCond(), multi_way_if::MergeCondMulti(), multi_way_if::MergeMultiCond(), multi_way_if::MergeMultiMulti(), PhiOpt::MergePhi(), Nuutila::Nuutila(), tree_helper::op_symbol(), PhiOpNode::opCtorGenerator(), UnaryOpNode::opCtorGenerator(), SigmaOpNode::opCtorGenerator(), BinaryOpNode::opCtorGenerator(), TernaryOpNode::opCtorGenerator(), LoadOpNode::opCtorGenerator(), Bit_Value_opt::optimize(), OrderedBasicBlock::OrderedBasicBlock(), FunctionCallTypeCleanup::ParametersTypeCleanup(), VarNode::print(), PhiOpNode::print(), UnaryOpNode::print(), SigmaOpNode::print(), BinaryOpNode::print(), TernaryOpNode::print(), LoadOpNode::print(), BehavioralHelper::print_attributes(), tree_helper::print_function_name(), BehavioralHelper::print_type_declaration(), TestbenchGeneration::print_var_init(), BehavioralHelper::print_vertex(), BehavioralHelper::PrintConstant(), PhiOpNode::printDot(), UnaryOpNode::printDot(), SigmaOpNode::printDot(), BinaryOpNode::printDot(), TernaryOpNode::printDot(), LoadOpNode::printDot(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), MemoryInitializationWriterBase::PrintStatus(), tree_helper::PrintType(), BehavioralHelper::PrintVarDeclaration(), BehavioralHelper::PrintVariable(), MemoryInitializationCWriter::Process(), MemoryInitializationWriter::Process(), processBranch(), processMultiWayIf(), IR_lowering::reached_max_transformation_limit(), hls_div_cg_ext::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_helper::RecursiveGetTypesToBeDeclared(), VarComputation::RecursivelyAnalyze(), tree_manager::RecursiveReplaceTreeNode(), application_manager::RegisterTransformation(), PhiOpt::RemoveCondExpr(), eSSA::renameUses(), compute_implicit_calls::replace_with_memcpy(), compute_implicit_calls::replace_with_memset(), PhiOpt::ReplaceVirtualUses(), FunctionCallOpt::RequestCallOpt(), ResolvePointerAlias(), same_size_fields(), Operand::set(), InterfaceInfer::setReadInterface(), gimple_node::SetVdef(), InterfaceInfer::setWriteInterface(), soft_float_cg_ext::signature_lowering(), PhiOpt::SinglePhiOptimization(), VcdSignalSelection::SingleStepPropagateAddrSsa(), tree_helper::Size(), BitLatticeManipulator::Size(), fu_binding::specialise_fu(), soft_float_cg_ext::ssa_lowering(), stackIsInScope(), BehavioralHelper::start_with_a_label(), BitLatticeManipulator::sup(), TernaryOpNode::TernaryOpNode(), Vectorize::Transform(), VarNode::updateIR(), Schedule::UpdateTime(), valueComesBefore(), tree_manipulation::VersionFunctionCall(), Nuutila::visit(), fu_binding::write_init(), FunctionFrontendFlowStep::WriteBBGraphDot(), BasicBlocksProfilingCWriter::WriteGlobalDeclarations(), HLSCWriter::WriteParamInitialization(), and DiscrepancyAnalysisCWriter::writePostInstructionInfo().
#define GET_INDEX_CONST_NODE | ( | t | ) | (GET_CONST_NODE(t))->index |
Definition at line 363 of file tree_node.hpp.
Referenced by __arg_suffix(), determine_memory_accesses::analyze_node(), PhiOpt::ApplyIfMerge(), PhiOpt::ApplyIfRemove(), PhiOpt::ApplyMultiMerge(), PhiOpt::ApplyMultiRemove(), Bit_Value::backward(), Bit_Value::backward_chain(), Bit_Value::backward_transfer(), tree_manipulation::bb_add_stmt(), operations_cfg_computation::build_operation_recursive(), HWCallInjection::buildBuiltinCall(), InterfaceInfer::ChasePointerInterfaceRecurse(), bloc::check_function_call(), tree_manager::check_ssa_uses(), tree_manipulation::CloneFunction(), tree_manager::collapse_into(), CBackend::ComputeRelationships(), tree_helper::ComputeSsaUses(), BitLatticeManipulator::constructor_bitstring(), constructor_range(), convertUsesToDFSOrdered(), tree_manipulation::create_basic_block(), tree_manipulation::create_binary_operation(), tree_manipulation::create_extract_bit_expr(), tree_manipulation::create_function_decl(), short_circuit_taf::create_gimple_cond(), tree_manipulation::create_gimple_cond(), tree_manipulation::create_gimple_modify_stmt(), tree_manipulation::create_gimple_return(), tree_manipulation::create_goto(), tree_manipulation::create_identifier_node(), tree_manipulation::create_label(), tree_manipulation::create_lut_expr(), PragmaAnalysis::create_map_pragma(), PragmaAnalysis::create_omp_pragma(), tree_manipulation::create_parm_decl(), tree_manipulation::create_phi_node(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_result_decl(), tree_manipulation::create_ssa_name(), fsm_controller::create_state_machine(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_translation_unit_decl(), tree_manipulation::create_unary_operation(), tree_manipulation::create_var_decl(), tree_manipulation::CreateIntegerCst(), Meet::crop(), DiscrepancyAnalysisCWriter::DeclareLocalVariables(), mux_connection_binding::determine_connection(), Vectorize::DuplicateIncrement(), TernaryOpNode::eval(), HWDiscrepancyAnalysis::Exec(), GenerateSynthesisScripts::Exec(), GenerateSimulationScripts::Exec(), generate_hdl::Exec(), call_graph_computation::Exec(), BitValueIPA::Exec(), dead_code_eliminationIPA::Exec(), Evaluation::Exec(), TestbenchGeneration::Exec(), InterfaceInfer::Exec(), tree_helper::extract_array_indexes(), tree_helper::find_obj_type_ref_function(), dead_code_elimination::fix_sdc_motion(), Meet::fixed(), Bit_Value::forward(), tree_helper::get_array_dim_and_bitsize(), tree_helper::get_array_var(), tree_helper::get_base_index(), Bit_Value::get_current(), Bit_Value::get_current_or_best(), tree_helper::get_integer_cst_value(), BehavioralHelper::get_parameters(), tree_helper::get_pointed_type(), application_manager::get_produced_value(), tree_helper::get_required_values(), tree_helper::get_used_variables(), tree_manipulation::GetBitsizeType(), ValueDFS_Compare::getBlockEdge_local(), tree_manipulation::GetBooleanType(), tree_manipulation::GetCustomIntegerType(), tree_manipulation::GetFunctionType(), BehavioralHelper::GetParameters(), tree_helper::GetRealType(), tree_manipulation::GetSignedIntegerType(), tree_manipulation::GetSizeType(), tree_manipulation::GetUnsignedIntegerType(), tree_manipulation::GetUnsignedLongLongType(), tree_manipulation::GetVoidType(), Meet::growth(), CSE::has_memory_access(), CSE::hash_check(), PhiOpt::IdentifyPattern(), TestbenchGeneration::Initialize(), FunctionCallOpt::Initialize(), Bit_Value::initialize(), tree_manipulation::InlineFunctionCall(), allocation::IntegrateTechnologyLibraries(), dataflow_cg_ext::InternalExec(), UnComparisonLowering::InternalExec(), BasicBlocksCfgComputation::InternalExec(), extract_patterns::InternalExec(), fanout_opt::InternalExec(), compute_implicit_calls::InternalExec(), parm2ssa::InternalExec(), FunctionCallTypeCleanup::InternalExec(), CondExprRestructuring::InternalExec(), commutative_expr_restructuring::InternalExec(), CSE::InternalExec(), FunctionCallOpt::InternalExec(), IR_lowering::InternalExec(), PhiOpt::InternalExec(), soft_float_cg_ext::InternalExec(), BehavioralHelper::is_named_pointer(), tree_helper::is_packed_access(), dead_code_elimination::kill_vdef(), CallGraphBuiltinCall::lookForBuiltinCall(), bloc::manageCallGraph(), Meet::narrow(), Bit_Value_opt::optimize(), FunctionCallTypeCleanup::ParametersTypeCleanup(), TestVectorParser::ParseXMLFile(), tree_helper::print_function_name(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), hls_div_cg_ext::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), soft_float_cg_ext::replaceWithCall(), FunctionCallOpt::RequestCallOpt(), ResolvePointerAlias(), Operand::set(), InterfaceInfer::setReadInterface(), InterfaceInfer::setWriteInterface(), dead_code_eliminationIPA::signature_opt(), soft_float_cg_ext::soft_float_cg_ext(), fu_binding::specialise_fu(), stackIsInScope(), VarNode::updateIR(), tree_manipulation::VersionFunctionCall(), virtual_phi_nodes_split::virtual_split_phi(), Nuutila::visit(), Meet::widen(), fu_binding::write_init(), DiscrepancyAnalysisCWriter::WriteExtraInitCode(), HLSCWriter::WriteFile(), HLSCWriter::WriteMainTestbench(), DiscrepancyAnalysisCWriter::WriteMainTestbench(), HLSCWriter::WriteParamInitialization(), and HLSCWriter::WriteTestbenchFunctionCall().
Macro used to hide implementation details when accessing a tree_node from another tree_node.
t | is the tree_nodeRef to access |
Definition at line 361 of file tree_node.hpp.
Referenced by determine_memory_accesses::analyze_node(), VarComputation::AnalyzeVops(), IR_lowering::array_ref_lowering(), Bit_Value::backward_transfer(), operations_cfg_computation::build_operation_recursive(), HWCallInjection::buildBuiltinCall(), CallGraphBuiltinCall::buildTypeToDeclaration(), CallGraphManager::call_graph_computation_recursive(), BehavioralHelper::CanBeMoved(), tree_manager::check_for_decl(), tree_manager::check_for_type(), bloc::check_function_call(), check_tree_node_opt(), pragma_manager::CheckAddOmpSimd(), simple_code_motion::CheckMovable(), tree_manager::collapse_into(), mux_connection_binding::create_connections(), PragmaAnalysis::create_omp_pragma(), vcd_utility::detect_address_mismatch(), VcdSignalSelection::DetectInvalidReturns(), mux_connection_binding::determine_connection(), BehavioralHelper::end_with_a_cond_or_goto(), tree_manager::erase_usage_info(), BitValueIPA::Exec(), PragmaAnalysis::Exec(), InterfaceInfer::Exec(), IR_lowering::expand_mult_highpart(), IR_lowering::expand_target_mem_ref(), mux_connection_binding::extract_parm_decl(), Bit_Value::forward_transfer(), BehavioralHelper::get_array_ref_array(), BehavioralHelper::get_array_ref_index(), BehavioralHelper::get_attributes(), BehavioralHelper::get_component_ref_field(), BehavioralHelper::get_component_ref_record(), HLS_manager::get_constant_string(), operations_cfg_computation::get_first_node(), BehavioralHelper::get_indirect_ref_var(), BehavioralHelper::get_intermediate_var(), BehavioralHelper::get_mem_ref_base(), BehavioralHelper::get_mem_ref_offset(), BehavioralHelper::get_operand_from_unary_expr(), BehavioralHelper::get_parameters(), BehavioralHelper::GetInit(), BehavioralHelper::GetVarFromSsa(), Bit_Value::initialize(), VcdSignalSelection::InitialSsaIsAddress(), tree_manager::insert_usage_info(), parm_decl_taken_address_fix::InternalExec(), SwitchFix::InternalExec(), remove_clobber_ga::InternalExec(), BuildVirtualPhi::InternalExec(), fanout_opt::InternalExec(), rebuild_initialization::InternalExec(), NI_SSA_liveness::InternalExec(), BlockFix::InternalExec(), SplitReturn::InternalExec(), compute_implicit_calls::InternalExec(), FunctionCallTypeCleanup::InternalExec(), hls_div_cg_ext::InternalExec(), CondExprRestructuring::InternalExec(), simple_code_motion::InternalExec(), dead_code_elimination::InternalExec(), operations_cfg_computation::InternalExec(), IR_lowering::InternalExec(), soft_float_cg_ext::InternalExec(), BehavioralHelper::is_a_constant(), BehavioralHelper::is_named_pointer(), CallGraphBuiltinCall::lookForBuiltinCall(), bloc::manageCallGraph(), tree_manager::merge_tree_managers(), LoadOpNode::opCtorGenerator(), lt_tree_reindex::operator()(), BBWriter::operator()(), BehavioralHelper::print_attributes(), BehavioralHelper::print_type_declaration(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintInit(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), BehavioralHelper::PrintVariable(), lut_transformation::ProcessBasicBlock(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), tree_manager::RecursiveReplaceTreeNode(), bloc::RemoveStmt(), CWriter::schedule_copies(), VcdSignalSelection::SelectInitialAddrParam(), InterfaceInfer::setWriteInterface(), VcdSignalSelection::SingleStepPropagateAddrSsa(), soft_float_cg_ext::ssa_lowering(), BehavioralHelper::start_with_a_label(), NI_SSA_liveness::Up_and_Mark(), varFound(), virtual_phi_nodes_split::virtual_split_phi(), fu_binding::write_init(), raw_writer::write_when_not_null(), DiscrepancyAnalysisCWriter::writePostInstructionInfo(), EdgeCWriter::writeRoutineInstructions_rec(), and CWriter::writeRoutineInstructions_rec().
#define GET_KIND_TEXT | ( | meth | ) |
Macro which defines the get_kind_text function that returns the parameter as a string.
Definition at line 87 of file tree_node.hpp.
Referenced by function_decl::add(), record_type::add_fncs(), union_type::add_fncs(), statement_list::add_stmt(), constructor::add_valu(), vector_cst::add_valu(), gimple_bind::add_vars(), blackbox_pragma::blackbox_pragma(), error_mark::error_mark(), binfo::get_baseinfo_size(), tree_vec::get_op(), gimple_nop::gimple_nop(), gimple_resx::gimple_resx(), issue_pragma::issue_pragma(), map_pragma::map_pragma(), null_node::null_node(), omp_atomic_pragma::omp_atomic_pragma(), omp_pragma::omp_pragma(), omp_section_pragma::omp_section_pragma(), profiling_pragma::profiling_pragma(), statistical_profiling::statistical_profiling(), and template_parm_index::template_parm_index().
#define GET_NODE | ( | t | ) |
Macro used to hide implementation details when accessing a tree_node from another tree_node.
t | is the tree_nodeRef to access |
Definition at line 343 of file tree_node.hpp.
Referenced by dead_code_elimination::add_gimple_nop(), gimple_phi::AddDefEdge(), Vectorize::AddGuards(), tree_helper::AllocatedMemorySize(), determine_memory_accesses::analyze_node(), PhiOpt::ApplyDiffNothing(), PhiOpt::ApplyGimpleNothing(), PhiOpt::ApplyIfMerge(), PhiOpt::ApplyIfNothing(), PhiOpt::ApplyIfRemove(), PhiOpt::ApplyMultiMerge(), PhiOpt::ApplyMultiNothing(), PhiOpt::ApplyMultiRemove(), IR_lowering::array_ref_lowering(), tree_manipulation::bb_add_stmt(), operations_cfg_computation::build_operation_recursive(), HWCallInjection::buildBuiltinCall(), CallGraphManager::call_graph_computation_recursive(), Schedule::CanBeMoved(), BehavioralHelper::CanBeMoved(), BehavioralHelper::CanBeSpeculated(), cannot_have_struct_parameters(), lut_transformation::cannotBeLUT(), PhiOpt::ChainOptimization(), tree_manager::check_for_decl(), tree_manager::check_for_type(), bloc::check_function_call(), FunctionExpander::check_lib_type(), tree_manager::check_ssa_uses(), pragma_manager::CheckAddOmpFor(), pragma_manager::CheckAddOmpSimd(), lut_transformation::CheckIfPI(), lut_transformation::CheckIfPO(), lut_transformation::CheckIfProcessable(), simple_code_motion::CheckMovable(), pragma_manager::CheckOmpFor(), Vectorize::ClassifyTreeNode(), CleanVirtuals(), tree_manipulation::CloneFunction(), tree_manager::collapse_into(), tree_helper::compute_ssa_uses_rec_ptr(), CreateAddressTranslation::ComputeAddress(), Schedule::ComputeCriticalPath(), AllocationInformation::ComputeDrivenCondExpr(), LoopsAnalysisBambu::ComputeFrontendRelationships(), AllocationInformation::ComputeRoots(), tree_helper::ComputeSsaUses(), BitLatticeManipulator::constructor_bitstring(), tree_helper::CountPointers(), tree_manipulation::create_basic_block(), tree_manipulation::create_binary_operation(), mux_connection_binding::create_connections(), tree_manipulation::create_extract_bit_expr(), tree_manipulation::create_function_decl(), short_circuit_taf::create_gimple_cond(), tree_manipulation::create_gimple_cond(), tree_manipulation::create_gimple_return(), tree_manipulation::create_goto(), tree_manipulation::create_identifier_node(), tree_manipulation::create_label(), tree_manipulation::create_lut_expr(), PragmaAnalysis::create_map_pragma(), PragmaAnalysis::create_omp_pragma(), tree_manipulation::create_phi_node(), tree_manipulation::create_quaternary_operation(), tree_manipulation::create_result_decl(), tree_manipulation::create_ssa_name(), tree_manipulation::create_ternary_operation(), tree_manipulation::create_translation_unit_decl(), tree_manipulation::create_unary_operation(), tree_manipulation::create_var_decl(), tree_manipulation::CreateAndExpr(), tree_manipulation::CreateEqExpr(), tree_manipulation::CreateGimpleAssignAddrExpr(), tree_manipulation::CreateIntegerCst(), tree_manipulation::CreateNopExpr(), tree_manipulation::CreateNotExpr(), tree_manipulation::CreateOrExpr(), VcdSignalSelection::CrossPropagateAddrSsa(), discrepancy_instruction_writer::declareFunction(), CWriter::DeclareLocalVariables(), vcd_utility::detect_regular_mismatch(), VcdSignalSelection::DetectInvalidReturns(), IR_lowering::division_by_a_constant(), Vectorize::DuplicateIncrement(), BehavioralHelper::end_with_a_cond_or_goto(), tree_manager::erase_usage_info(), Schedule::EvaluateCondsMerging(), Schedule::EvaluateMultiWayIfsMerging(), HDLFunctionDeclFix::Exec(), call_graph_computation::Exec(), BitValueIPA::Exec(), string_cst_fix::Exec(), PragmaAnalysis::Exec(), create_tree_manager::Exec(), CreateAddressTranslation::Exec(), InterfaceInfer::Exec(), IR_lowering::expand_MC(), IR_lowering::expand_mult_const(), IR_lowering::expand_mult_highpart(), IR_lowering::expand_sdiv_pow2(), IR_lowering::expand_smod_pow2(), IR_lowering::expand_target_mem_ref(), CallGraphManager::expandCallGraphFromFunction(), rebuild_initialization2::extract_var_decl(), rebuild_initialization2::extract_var_decl_ppe(), tree_manipulation::ExtractCondition(), extractOp1(), fu_binding::fill_array_ref_memory(), memory_allocation::finalize_memory_allocation(), tree_helper::find_obj_type_ref_function(), multi_way_if::FixCfg(), Vectorize::FixPhis(), Bit_Value::forward(), tree_manager::function_index_mngl(), tree_helper::get_array_dim_and_bitsize(), tree_helper::get_array_var(), PragmaAnalysis::get_call_parameter(), record_type::get_field(), operations_cfg_computation::get_first_node(), fsm_controller::get_guard_value(), BehavioralHelper::get_intermediate_var(), BehavioralHelper::get_label_name(), record_type::get_maybe_name(), BehavioralHelper::get_parameters(), tree_helper::get_required_values(), getAssign(), tree_helper::GetBaseVariable(), Schedule::GetBBEndingTime(), tree_manipulation::GetBitsizeType(), tree_manipulation::GetBooleanType(), AllocationInformation::GetConnectionTime(), tree_manipulation::GetCustomIntegerType(), tree_manager::GetFunction(), getFunctionPointerType(), tree_helper::GetFunctionSize(), getFunctionType(), OpNodeInfo::GetOperation(), AllocationInformation::GetPhiConnectionLatency(), Schedule::GetReadyTime(), tree_helper::GetRecordTypeName(), tree_manipulation::GetSignedIntegerType(), tree_manipulation::GetSizeType(), AllocationInformation::GetStatementArea(), tree_helper::GetTemplateTypeName(), AllocationInformation::GetTimeLatency(), tree_manipulation::GetUnsignedIntegerType(), tree_manipulation::GetUnsignedLongLongType(), tree_manipulation::GetVoidType(), GimpleWriter::GimpleWriter(), tree_helper::has_omp_simd(), NI_SSA_liveness::Initialize(), RemoveEndingIf::Initialize(), simple_code_motion::Initialize(), multi_way_if::Initialize(), MultipleEntryIfReduction::Initialize(), Bit_Value::initialize(), PhiOpt::Initialize(), VcdSignalSelection::InitialPhiResIsAddress(), VcdSignalSelection::InitialSsaIsAddress(), tree_manipulation::InlineFunctionCall(), tree_manager::insert_usage_info(), parm_decl_taken_address_fix::InternalExec(), FixStructsPassedByValue::InternalExec(), HWCallInjection::InternalExec(), PredicateStatements::InternalExec(), SerializeMutualExclusions::InternalExec(), ExtractOmpAtomic::InternalExec(), SDCCodeMotion::InternalExec(), ExtractOmpFor::InternalExec(), use_counting::InternalExec(), SwitchFix::InternalExec(), ExtractGimpleCondOp::InternalExec(), FixVdef::InternalExec(), remove_clobber_ga::InternalExec(), UpdateSchedule::InternalExec(), HDLVarDeclFix::InternalExec(), extract_patterns::InternalExec(), LoopsAnalysisBambu::InternalExec(), BuildVirtualPhi::InternalExec(), AddOpPhiFlowEdges::InternalExec(), mem_dominator_allocation::InternalExec(), CallGraphBuiltinCall::InternalExec(), call_expr_fix::InternalExec(), eSSA::InternalExec(), rebuild_initialization::InternalExec(), fanout_opt::InternalExec(), NI_SSA_liveness::InternalExec(), BlockFix::InternalExec(), SplitReturn::InternalExec(), parm2ssa::InternalExec(), compute_implicit_calls::InternalExec(), FunctionCallTypeCleanup::InternalExec(), hls_div_cg_ext::InternalExec(), CondExprRestructuring::InternalExec(), commutative_expr_restructuring::InternalExec(), VarDeclFix::InternalExec(), RemoveEndingIf::InternalExec(), virtual_phi_nodes_split::InternalExec(), simple_code_motion::InternalExec(), short_circuit_taf::InternalExec(), dead_code_elimination::InternalExec(), CSE::InternalExec(), FunctionCallOpt::InternalExec(), multi_way_if::InternalExec(), MultipleEntryIfReduction::InternalExec(), CheckSystemType::InternalExec(), operations_cfg_computation::InternalExec(), IR_lowering::InternalExec(), Vectorize::InternalExec(), PhiOpt::InternalExec(), soft_float_cg_ext::InternalExec(), tree_helper::is_concat_bit_ior_expr(), fanout_opt::is_dest_relevant(), tree_helper::is_parameter(), tree_helper::is_simple_pointer_plus_test(), tree_manager::is_top_function(), BehavioralHelper::is_va_start_call(), BehavioralHelper::is_var_args(), commutative_expr_restructuring::IsCommExprChain(), commutative_expr_restructuring::IsCommExprGimple(), CondExprRestructuring::IsCondExprChain(), CondExprRestructuring::IsCondExprGimple(), dead_code_elimination::kill_uses(), dead_code_elimination::kill_vdef(), rebuild_initialization2::look_for_ROMs(), CallGraphBuiltinCall::lookForBuiltinCall(), bloc::manageCallGraph(), materializeStack(), multi_way_if::MergeCondCond(), PhiOpt::MergePhi(), dead_code_elimination::move2emptyBB(), LoadOpNode::opCtorGenerator(), Operand::Operand(), BBWriter::operator()(), FunctionExpander::operator()(), Bit_Value_opt::optimize(), BehavioralHelper::print_attributes(), vcd_utility::print_discrepancy(), BehavioralHelper::print_type_declaration(), BehavioralHelper::PrintConstant(), BehavioralHelper::PrintNode(), tree_helper::PrintType(), BehavioralHelper::PrintVariable(), lut_transformation::ProcessBasicBlock(), processBranch(), bloc::PushAfter(), bloc::PushBack(), bloc::PushBefore(), bloc::PushFront(), parm2ssa::recursive_analysis(), string_cst_fix::recursive_analysis(), hls_div_cg_ext::recursive_examinate(), VarDeclFix::recursive_examinate(), CheckSystemType::recursive_examinate(), soft_float_cg_ext::RecursiveExaminate(), tree_manager::RecursiveReplaceTreeNode(), gimple_phi::RemoveDefEdge(), bloc::RemovePhi(), bloc::RemoveStmt(), bloc::ReorderLUTs(), bloc::Replace(), gimple_phi::ReplaceDefEdge(), tree_manager::ReplaceTreeNode(), PhiOpt::ReplaceVirtualUses(), short_circuit_taf::restructure_CFG(), CWriter::schedule_copies(), VcdSignalSelection::SelectInitialAddrParam(), Operand::set(), Vectorize::SetPredication(), InterfaceInfer::setReadInterface(), InterfaceInfer::setWriteInterface(), soft_float_cg_ext::signature_lowering(), dead_code_eliminationIPA::signature_opt(), VcdSignalSelection::SingleStepPropagateAddrSsa(), VcdSignalSelection::SingleStepPropagateParamToSsa(), BitLatticeManipulator::Size(), soft_float_cg_ext::soft_float_cg_ext(), fu_binding::specialise_fu(), soft_float_cg_ext::ssa_lowering(), BehavioralHelper::start_with_a_label(), PointToSolution::ToString(), Vectorize::Transform(), NI_SSA_liveness::Up_and_Mark(), bloc::update_new_stmt(), multi_way_if::UpdateCfg(), VarNode::updateIR(), Schedule::UpdateTime(), varFound(), tree_manipulation::VersionFunctionCall(), virtual_phi_nodes_split::virtual_split_phi(), fu_binding::write_init(), FunctionFrontendFlowStep::WriteBBGraphDot(), BasicBlocksProfilingCWriter::WriteGlobalDeclarations(), DiscrepancyAnalysisCWriter::writePostInstructionInfo(), and DiscrepancyAnalysisCWriter::writePreInstructionInfo().
#define NON_LEAF_TREE_NODES |
Definition at line 93 of file tree_node.hpp.
#define OBJ_NOT_SPECIALIZED_SEQ |
Definition at line 122 of file tree_node.hpp.
Referenced by function_decl_refs::function_decl_refs(), tree_node_factory::tree_node_factory(), tree_node_finder::tree_node_finder(), tree_node_index_factory::tree_node_index_factory(), and tree_node_reached::tree_node_reached().
#define OBJ_SPECIALIZED_SEQ |
sequence of obj that have to be specialized
Definition at line 106 of file tree_node.hpp.
Referenced by function_decl_refs::function_decl_refs(), tree_node_factory::tree_node_factory(), tree_node_finder::tree_node_finder(), tree_node_index_factory::tree_node_index_factory(), tree_node_reached::tree_node_reached(), and type_casting::type_casting().
#define VISITED_OBJ_SEQ1 NON_LEAF_TREE_NODES UNARY_EXPRESSION_TREE_NODES BINARY_EXPRESSION_TREE_NODES TERNARY_EXPRESSION_TREE_NODES |
sequence of all objects
Definition at line 98 of file tree_node.hpp.
Referenced by object_visitor::~object_visitor().
#define VISITED_OBJ_SEQ2 |
Definition at line 100 of file tree_node.hpp.
Referenced by object_visitor::~object_visitor().
using PointToSolutionRef = refcount<PointToSolution> |
Definition at line 1073 of file tree_node.hpp.
using tree_nodeConstRef = refcount<const tree_node> |
Definition at line 213 of file tree_node.hpp.
using tree_nodeRef = refcount<tree_node> |
RefCount type definition of the tree_node class structure.
Definition at line 212 of file tree_node.hpp.
CONSTREF_FORWARD_DECL | ( | tree_node | ) |
CREATE_TREE_NODE_CLASS | ( | abs_expr | , |
unary_expr | |||
) |
This struct specifies the abs_expr node.
Represents the absolute value of the operand. An ABS_EXPR must have either an INTEGER_TYPE or a REAL_TYPE. The operand of the ABS_EXPR must have the same type.
CREATE_TREE_NODE_CLASS | ( | addr_expr | , |
unary_expr | |||
) |
This struct specifies the addr_expr node.
& in C. Value is the address at which the operand's value resides. Operand may have any mode. Result mode is Pmode.
CREATE_TREE_NODE_CLASS | ( | array_range_ref | , |
quaternary_expr | |||
) |
struct describing an array range.
Likewise an array, except that the result is a range ("slice") of the array. The starting index of the resulting array is taken from operand 1 and the size of the range is taken from the type of the expression.
CREATE_TREE_NODE_CLASS | ( | array_ref | , |
quaternary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | alignof_expr | , |
unary_expr | |||
) |
This struct represent alignof_expr.
CREATE_TREE_NODE_CLASS | ( | arrow_expr | , |
unary_expr | |||
) |
This struct represent arrow_expr.
CREATE_TREE_NODE_CLASS | ( | assert_expr | , |
binary_expr | |||
) |
This struct specifies the assert_expr node.
CREATE_TREE_NODE_CLASS | ( | bit_and_expr | , |
binary_expr | |||
) |
This struct specifies the bit_and_expr node.
Bitwise operation. Operands have same mode as result.
CREATE_TREE_NODE_CLASS | ( | bit_field_ref | , |
ternary_expr | |||
) |
This struct specifies the bit_field_ref node.
Reference to a group of bits within an object. Similar to COMPONENT_REF except the position is given explicitly rather than via a FIELD_DECL. Operand 0 is the structure or union expression; operand 1 is a tree giving the number of bits being referenced; operand 2 is a tree giving the position of the first referenced bit. The field can be either a signed or unsigned field; BIT_FIELD_REF_UNSIGNED says which.
CREATE_TREE_NODE_CLASS | ( | bit_ior_expr | , |
binary_expr | |||
) |
This struct specifies the bit_ior_expr node.
Bitwise operation. Operands have same mode as result.
CREATE_TREE_NODE_CLASS | ( | bit_ior_concat_expr | , |
ternary_expr | |||
) |
This struct specifies a concatenation between in1 and in2 using in3 bits.
Bitwise operation. Operands have same mode as result.
CREATE_TREE_NODE_CLASS | ( | bit_not_expr | , |
unary_expr | |||
) |
This struct specifies the bit_not_expr node.
Bitwise operation. Operands have same mode as result.
CREATE_TREE_NODE_CLASS | ( | bit_xor_expr | , |
binary_expr | |||
) |
This struct specifies the bit_xor_expr node.
Bitwise operation. Operands have same mode as result.
CREATE_TREE_NODE_CLASS | ( | boolean_type | , |
type_node | |||
) |
struct definition of the boolean_type tree node.
The tree walker structure of this node is: #(TOK_BOOLEAN_TYPE type_node)
CREATE_TREE_NODE_CLASS | ( | buffer_ref | , |
unary_expr | |||
) |
This struct specifies the buffer_ref node.
Pascal ^
on a file. One operand, an expression for the file.
CREATE_TREE_NODE_CLASS | ( | card_expr | , |
unary_expr | |||
) |
This struct specifies the card_expr node.
Operation for Pascal sets.
CREATE_TREE_NODE_CLASS | ( | catch_expr | , |
binary_expr | |||
) |
This struct specifies the catch_expr node.
Evaluate operand 1. If and only if an exception is thrown during the evaluation of operand 1, evaluate operand 2. This differs from TRY_FINALLY_EXPR in that operand 2 is not evaluated on a normal or jump exit, only on an exception.
CREATE_TREE_NODE_CLASS | ( | ceil_div_expr | , |
binary_expr | |||
) |
This struct specifies the ceil_div_expr node.
Division for integer result that rounds the quotient toward infinity.
CREATE_TREE_NODE_CLASS | ( | ceil_mod_expr | , |
binary_expr | |||
) |
This struct specifies the ceil_mod_expr node.
Kind of remainder that go with the kind of division.
CREATE_TREE_NODE_CLASS | ( | CharType | , |
type_node | |||
) |
struct definition of the CharType tree node.
The tree walker structure of this node is: #(TOK_CHAR_TYPE type_node)
CREATE_TREE_NODE_CLASS | ( | nullptr_type | , |
type_node | |||
) |
The C++ decltype(nullptr) type.
CREATE_TREE_NODE_CLASS | ( | cleanup_point_expr | , |
unary_expr | |||
) |
This struct specifies the cleanup_point_expr node.
As a consequence, the operand of a CLEANUP_POINT_EXPR must not have BLKmode, because it will not be forced out of memory.
CREATE_TREE_NODE_CLASS | ( | complex_expr | , |
binary_expr | |||
) |
This struct specifies the complex_expr node.
Given two real or integer operands of the same type, returns a complex value of the corresponding complex type.
CREATE_TREE_NODE_CLASS | ( | component_ref | , |
ternary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | compound_expr | , |
binary_expr | |||
) |
This struct specifies the compound_expr node.
Contains two expressions to compute, one followed by the other. The first value is ignored. The second one's value is used. The type of the first expression need not agree with the other types.
CREATE_TREE_NODE_CLASS | ( | cond_expr | , |
ternary_expr | |||
) |
This struct specifies the cond_expr node.
Conditional expression ( ... ? ... : ... in C). Operand 0 is the condition. Operand 1 is the then-value. Operand 2 is the else-value. Operand 0 may be of any type. Operand 1 must have the same type as the entire expression, unless it unconditionally throws an exception, in which case it should have VOID_TYPE. The same constraints apply to operand 2.
CREATE_TREE_NODE_CLASS | ( | conj_expr | , |
unary_expr | |||
) |
This struct specifies the conj_expr node.
Complex conjugate of operand. Used only on complex types.
CREATE_TREE_NODE_CLASS | ( | convert_expr | , |
unary_expr | |||
) |
This struct specifies the convert_expr node.
Represents a conversion of type of a value. All conversions, including implicit ones, must be represented by CONVERT_EXPR or NOP_EXPR nodes.
CREATE_TREE_NODE_CLASS | ( | ctor_initializer | , |
tree_node | |||
) |
CTOR_INITIALIZER is a placeholder in template code for a call to setup_vtbl_pointer (and appears in all functions, not just ctors)
CREATE_TREE_NODE_CLASS | ( | eh_filter_expr | , |
binary_expr | |||
) |
This struct specifies the eh_filter_expr node.
Used to represent an exception specification. EH_FILTER_TYPES is a list of allowed types, and EH_FILTER_FAILURE is an expression to evaluate on failure. EH_FILTER_MUST_NOT_THROW controls which range type to use when expanding.
CREATE_TREE_NODE_CLASS | ( | eq_expr | , |
binary_expr | |||
) |
This struct specifies the eq_expr node.
Relational operators. EQ_EXPR is allowed for any types. The operands will have the same type, and the value is always the type used by the language for Boolean.
CREATE_TREE_NODE_CLASS | ( | exact_div_expr | , |
binary_expr | |||
) |
This struct specifies the exact_div_expr node.
Division which is not supposed to need rounding. Used for pointer subtraction in C.
CREATE_TREE_NODE_CLASS | ( | exit_expr | , |
unary_expr | |||
) |
This struct specifies the exit_expr node.
Exit the inner most loop conditionally. The operand is the condition. The type should be void and the value should be ignored.
CREATE_TREE_NODE_CLASS | ( | fdesc_expr | , |
binary_expr | |||
) |
This struct specifies the fdesc_expr node.
Operand 0 is a function constant; result is part N of a function descriptor of type ptr_mode.
CREATE_TREE_NODE_CLASS | ( | fix_ceil_expr | , |
unary_expr | |||
) |
This struct specifies the fix_ceil_expr node.
Conversion of real to fixed point.
CREATE_TREE_NODE_CLASS | ( | fix_floor_expr | , |
unary_expr | |||
) |
This struct specifies the fix_floor_expr node.
Conversion of real to fixed point
CREATE_TREE_NODE_CLASS | ( | fix_round_expr | , |
unary_expr | |||
) |
This struct specifies the fix_round_expr node.
Conversion of real to fixed point
CREATE_TREE_NODE_CLASS | ( | fix_trunc_expr | , |
unary_expr | |||
) |
This struct specifies the fix_trunc_expr node.
Conversion of real to fixed point.
CREATE_TREE_NODE_CLASS | ( | float_expr | , |
unary_expr | |||
) |
This struct specifies the float_expr node.
Conversion of an integer to a real.
CREATE_TREE_NODE_CLASS | ( | floor_div_expr | , |
binary_expr | |||
) |
This struct specifies the floor_div_expr node.
Division for integer result that rounds toward minus infinity.
CREATE_TREE_NODE_CLASS | ( | floor_mod_expr | , |
binary_expr | |||
) |
This struct specifies the floor_mod_expr node.
Kind of remainder that go with the kind of division.
CREATE_TREE_NODE_CLASS | ( | ge_expr | , |
binary_expr | |||
) |
This struct specifies the ge_expr node.
Relational operator. GE_EXPR is allowed only for integer (or pointer or enumerate) or real types. The operands will have the same type, and the value is always the type used by the language for Boolean.
CREATE_TREE_NODE_CLASS | ( | goto_subroutine | , |
binary_expr | |||
) |
This struct specifies the goto_subroutine node.
Used internally for cleanups in the implementation of TRY_FINALLY_EXPR. (Specifically, it is created by expand_expr, not front-ends.) Operand 0 is the rtx for the start of the subroutine we need to call. Operand 1 is the rtx for a variable in which to store the address of where the subroutine should return to.
CREATE_TREE_NODE_CLASS | ( | gt_expr | , |
binary_expr | |||
) |
This struct specifies the gt_expr node.
Relational operator. GT_EXPR is allowed only for integer (or pointer or enumerate) or real types. The operands will have the same type, and the value is always the type used by the language for Boolean.
CREATE_TREE_NODE_CLASS | ( | imagpart_expr | , |
unary_expr | |||
) |
This struct specifies the imagpart_expr node.
Used only on an operand of complex type, this return a value of the corresponding component type.
CREATE_TREE_NODE_CLASS | ( | indirect_ref | , |
unary_expr | |||
) |
This struct specifies the indirect_ref node.
C unary `*' or Pascal `^'. One operand, an expression for a pointer.
CREATE_TREE_NODE_CLASS | ( | misaligned_indirect_ref | , |
unary_expr | |||
) |
This struct specifies the misaligned version of the indirect_ref node.
CREATE_TREE_NODE_CLASS | ( | in_expr | , |
binary_expr | |||
) |
This struct specifies the in_expr node.
Operation for Pascal sets.
CREATE_TREE_NODE_CLASS | ( | init_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | label_decl | , |
decl_node | |||
) |
struct definition of the label_decl tree node.
The tree walker structure of this node is: #(TOK_LABEL_DECL decl_node (uid)?)
CREATE_TREE_NODE_CLASS | ( | lang_type | , |
type_node | |||
) |
struct definition of the lang_type tree node.
The tree walker structure of this node is: #(TOK_LANG_TYPE type_node);
CREATE_TREE_NODE_CLASS | ( | le_expr | , |
binary_expr | |||
) |
This struct specifies the le_expr node.
Relational operator.LE_EXPR is allowed only for integer (or pointer or enumerate) or real types. The operands will have the same type, and the value is always the type used by the language for Boolean.
CREATE_TREE_NODE_CLASS | ( | loop_expr | , |
unary_expr | |||
) |
A loop.
The operand is the body of the loop. It must contain an EXIT_EXPR or is an infinite loop. The type should be void and the value should be ignored.
CREATE_TREE_NODE_CLASS | ( | lrotate_expr | , |
binary_expr | |||
) |
This struct specifies the lrotate_expr node.
Shift operation for rotate. Shift means logical shift if done on an unsigned type, arithmetic shift if done on a signed type. The second operand is the number of bits to shift by; it need not be the same type as the first operand and result. Note that the result is undefined if the second operand is larger than the first operand's type size.
CREATE_TREE_NODE_CLASS | ( | lshift_expr | , |
binary_expr | |||
) |
This struct specifies the lshift_expr node.
Shift operation for shift. Shift means logical shift if done on an unsigned type, arithmetic shift if done on a signed type. The second operand is the number of bits to shift by; it need not be the same type as the first operand and result. Note that the result is undefined if the second operand is larger than the first operand's type size.
CREATE_TREE_NODE_CLASS | ( | lt_expr | , |
binary_expr | |||
) |
This struct specifies the lt_expr node.
Relational operator. LT_EXPR is allowed only for integer (or pointer or enumerate) or real types. The operands will have the same type, and the value is always the type used by the language for Boolean.
CREATE_TREE_NODE_CLASS | ( | ltgt_expr | , |
binary_expr | |||
) |
This struct specifies the ltgt_expr node.
This is the reverse of uneq_expr.
CREATE_TREE_NODE_CLASS | ( | max_expr | , |
binary_expr | |||
) |
This struct specifies the max_expr node.
CREATE_TREE_NODE_CLASS | ( | mem_ref | , |
binary_expr | |||
) |
Memory addressing.
Operands are a pointer and a tree constant integer byte offset of the pointer type that when de-referenced yields the type of the base object the pointer points into and which is used for TBAA purposes. The type of the MEM_REF is the type the bytes at the memory location are interpreted as. MEM_REF <p, c> is equivalent to ((typeof(c))p)->x... where x... is a chain of component references offsetting p by c.
CREATE_TREE_NODE_CLASS | ( | min_expr | , |
binary_expr | |||
) |
This struct specifies the min_expr node.
CREATE_TREE_NODE_CLASS | ( | minus_expr | , |
binary_expr | |||
) |
This struct specifies the minus_expr node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | modify_expr | , |
binary_expr | |||
) |
This struct specifies the modify_expr node.
Assignment expression. The first operand is the what to set; the second, the new value.
CREATE_TREE_NODE_CLASS | ( | modop_expr | , |
expr_node | |||
) |
This struct represent one of the bunch of tree codes for the initial, superficial parsing of templates.
CREATE_TREE_NODE_CLASS | ( | mult_expr | , |
binary_expr | |||
) |
This struct specifies the mult_expr node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | mult_highpart_expr | , |
binary_expr | |||
) |
This struct specifies the mult_highpart_expr node.
Highpart multiplication. For an integral type with precision B, returns bits [2B-1, B] of the full 2*B product.
CREATE_TREE_NODE_CLASS | ( | ne_expr | , |
binary_expr | |||
) |
This struct specifies the ne_expr node.
Relational operators. NE_EXPR is allowed for any types. The operands will have the same type, and the value is always the type used by the language for Boolean.
CREATE_TREE_NODE_CLASS | ( | negate_expr | , |
unary_expr | |||
) |
This struct specifies the negate_expr node.
Unary negation.
CREATE_TREE_NODE_CLASS | ( | new_expr | , |
expr_node | |||
) |
This struct represent a 'new' expression.
CREATE_TREE_NODE_CLASS | ( | non_lvalue_expr | , |
unary_expr | |||
) |
This struct specifies the non_lvalue_expr node.
Value is same as argument, but guaranteed not an lvalue.
CREATE_TREE_NODE_CLASS | ( | nop_expr | , |
unary_expr | |||
) |
This struct specifies the nop_expr node.
Represents a conversion expected to require no code to be generated.
CREATE_TREE_NODE_CLASS | ( | obj_type_ref | , |
ternary_expr | |||
) |
Used to represent lookup of runtime type dependent data.
Often this is a reference to a vtable, but it needn't be. Operands are: OBJ_TYPE_REF_EXPR: An expression that evaluates the value to use. OBJ_TYPE_REF_OBJECT: Is the object on whose behalf the lookup is being performed. Through this the optimizer may be able to statically determine the dynamic type of the object. OBJ_TYPE_REF_TOKEN: Something front-end specific used to resolve the reference to something simpler, usually to the address of a DECL. Never touched by the middle-end. Good choices would be either an identifier or a vtable index.
CREATE_TREE_NODE_CLASS | ( | offset_type | , |
type_node | |||
) |
struct definition of the offset_type tree node.
The tree walker structure of this node is: #(TOK_OFFSET_TYPE type_node)
CREATE_TREE_NODE_CLASS | ( | ordered_expr | , |
binary_expr | |||
) |
This struct specifies the ordered_expr node.
Additional relational operator for floating point unordered.
CREATE_TREE_NODE_CLASS | ( | placeholder_expr | , |
expr_node | |||
) |
This struct specifies the placeholder_expr node.
Such a "self-references" is done using a PLACEHOLDER_EXPR. This is a node that will later be replaced with the object being referenced. Its type is that of the object and selects which object to use from a chain of references (see below). No other slots are used in the PLACEHOLDER_EXPR. This node denotes a record to later be substituted before evaluating this expression. The type of this expression is used to find the record to replace it.
CREATE_TREE_NODE_CLASS | ( | plus_expr | , |
binary_expr | |||
) |
This struct specifies the plus_expr node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | pointer_plus_expr | , |
binary_expr | |||
) |
Pointer addition.
The first operand is always a pointer and the second operand is an integer of type sizetype.
CREATE_TREE_NODE_CLASS | ( | postdecrement_expr | , |
binary_expr | |||
) |
This struct specifies the postdecrement_expr node.
struct for – in C. The second arg is how much to increment by. For a pointer, it would be the size of the object pointed to.
CREATE_TREE_NODE_CLASS | ( | postincrement_expr | , |
binary_expr | |||
) |
This struct specifies the postincrement_expr node.
struct for ++ in C. The second arg is how much to increment by. For a pointer, it would be the size of the object pointed to.
CREATE_TREE_NODE_CLASS | ( | predecrement_expr | , |
binary_expr | |||
) |
This struct specifies the predecrement_expr node.
struct for – in C. The second arg is how much to increment by. For a pointer, it would be the size of the object pointed to.
CREATE_TREE_NODE_CLASS | ( | preincrement_expr | , |
binary_expr | |||
) |
This struct specifies the preincrement_expr node.
struct for ++ in C. The second arg is how much to increment by. For a pointer, it would be the size of the object pointed to.
CREATE_TREE_NODE_CLASS | ( | qual_union_type | , |
type_node | |||
) |
struct definition of the qual_union_type tree node.
The tree walker structure of this node is: #(TOK_QUAL_UNION_TYPE type_node);
CREATE_TREE_NODE_CLASS | ( | range_expr | , |
binary_expr | |||
) |
This struct specifies the range_expr node.
Operation for Pascal sets.
CREATE_TREE_NODE_CLASS | ( | paren_expr | , |
unary_expr | |||
) |
Represents a re-association barrier for floating point expressions like explicit parenthesis in fortran.
CREATE_TREE_NODE_CLASS | ( | rdiv_expr | , |
binary_expr | |||
) |
This struct specifies the rdiv_expr node.
Division for real result.
CREATE_TREE_NODE_CLASS | ( | realpart_expr | , |
unary_expr | |||
) |
This struct specifies the realpart_expr node.
Used only on an operand of complex type, this return a value of the corresponding component type.
CREATE_TREE_NODE_CLASS | ( | reduc_max_expr | , |
unary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | reduc_min_expr | , |
unary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | reduc_plus_expr | , |
unary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | reference_expr | , |
unary_expr | |||
) |
This struct specifies the reference_expr node.
Non-lvalue reference or pointer to an object.
CREATE_TREE_NODE_CLASS | ( | reinterpret_cast_expr | , |
unary_expr | |||
) |
This struct represent one of tree codes for the initial, superficial parsing of templates.
CREATE_TREE_NODE_CLASS | ( | round_div_expr | , |
binary_expr | |||
) |
This struct specifies the round_div_expr node.
Division for integer result that rounds toward nearest integer.
CREATE_TREE_NODE_CLASS | ( | round_mod_expr | , |
binary_expr | |||
) |
This struct specifies the round_mod_expr node.
Kind of remainder that go with the kind of division.
CREATE_TREE_NODE_CLASS | ( | rrotate_expr | , |
binary_expr | |||
) |
This struct specifies the rrotate_expr node.
Shift operation for rotate. Shift means logical shift if done on an unsigned type, arithmetic shift if done on a signed type. The second operand is the number of bits to shift by; it need not be the same type as the first operand and result. Note that the result is undefined if the second operand is larger than the first operand's type size.
CREATE_TREE_NODE_CLASS | ( | rshift_expr | , |
binary_expr | |||
) |
This struct specifies the rshift_expr node.
Shift operation for shift. Shift means logical shift if done on an unsigned type, arithmetic shift if done on a signed type. The second operand is the number of bits to shift by; it need not be the same type as the first operand and result. Note that the result is undefined if the second operand is larger than the first operand's type size.
CREATE_TREE_NODE_CLASS | ( | save_expr | , |
ternary_expr | |||
) |
This struct specifies the save_expr node.
Represents something we computed once and will use multiple times. First operand is that expression. Second is the function decl in which the SAVE_EXPR was created. The third operand is the RTL, nonzero only after the expression has been computed.
CREATE_TREE_NODE_CLASS | ( | set_le_expr | , |
binary_expr | |||
) |
This struct specifies the set_le_expr node.
Operation for Pascal sets.
CREATE_TREE_NODE_CLASS | ( | set_type | , |
type_node | |||
) |
struct definition of the set_type tree node.
The tree walker structure of this node is: #(TOK_SET_TYPE type_node)
CREATE_TREE_NODE_CLASS | ( | sizeof_expr | , |
unary_expr | |||
) |
This struct specifies the sizeof_expr node.
Represents the size value of the operand.
CREATE_TREE_NODE_CLASS | ( | static_cast_expr | , |
unary_expr | |||
) |
This struct specifies the static_cast_expr node.
The walker for this struct is #(TOK_STATIC_CAST_EXPR wunary_expr);
CREATE_TREE_NODE_CLASS | ( | template_id_expr | , |
expr_node | |||
) |
This struct represents a template identifier.
CREATE_TREE_NODE_CLASS | ( | template_type_parm | , |
type_node | |||
) |
struct definition of the template_type_parm tree node.
The tree walker structure of this node is: #(TOK_TEMPLATE_TYPE_PARM type_node)
CREATE_TREE_NODE_CLASS | ( | ternary_plus_expr | , |
ternary_expr | |||
) |
This struct specifies the a + b + c node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | ternary_pm_expr | , |
ternary_expr | |||
) |
This struct specifies the a + b - c node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | ternary_mp_expr | , |
ternary_expr | |||
) |
This struct specifies the a - b + c node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | ternary_mm_expr | , |
ternary_expr | |||
) |
This struct specifies the a - b - c node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | throw_expr | , |
unary_expr | |||
) |
This struct represents a throw expression.
CREATE_TREE_NODE_CLASS | ( | trait_expr | , |
tree_node | |||
) |
Represents a trait expression during template expansion.
CREATE_TREE_NODE_CLASS | ( | translation_unit_decl | , |
decl_node | |||
) |
struct definition of the translation_unit_decl tree node.
The tree walker structure of this node is: #(TOK_TRANSLATION_UNIT_DECL decl_node)
CREATE_TREE_NODE_CLASS | ( | trunc_div_expr | , |
binary_expr | |||
) |
This struct specifies the trunc_div_expr node.
Division for integer result that rounds the quotient toward zero.
CREATE_TREE_NODE_CLASS | ( | trunc_mod_expr | , |
binary_expr | |||
) |
This struct specifies the trunc_mod_expr node.
Kind of remainder that go with the kind of division.
CREATE_TREE_NODE_CLASS | ( | truth_and_expr | , |
binary_expr | |||
) |
This struct specifies the truth_and_expr node.
AND always compute the second operand whether its value is needed or not (for side effects). The operand may have BOOLEAN_TYPE or INTEGER_TYPE. The argument will be either zero or one.
CREATE_TREE_NODE_CLASS | ( | truth_andif_expr | , |
binary_expr | |||
) |
This struct specifies the truth_andif_expr node.
ANDIF allow the second operand not to be computed if the value of the expression is determined from the first operand. The operand may have BOOLEAN_TYPE or INTEGER_TYPE. The argument will be either zero or one.
CREATE_TREE_NODE_CLASS | ( | truth_not_expr | , |
unary_expr | |||
) |
This struct specifies the truth_not_expr node.
The operand may have BOOLEAN_TYPE or INTEGER_TYPE. In either case, the argument will be either zero or one. TRUTH_NOT_EXPR will never have an INTEGER_TYPE VAR_DECL as its argument.
CREATE_TREE_NODE_CLASS | ( | truth_or_expr | , |
binary_expr | |||
) |
This struct specifies the truth_or_expr node.
The operand may have BOOLEAN_TYPE or INTEGER_TYPE. the argument will be either zero or one.
CREATE_TREE_NODE_CLASS | ( | truth_orif_expr | , |
binary_expr | |||
) |
This struct specifies the truth_orif_expr node.
ORIF allow the second operand not to be computed if the value of the expression is determined from the first operand. The operand may have BOOLEAN_TYPE or INTEGER_TYPE. The argument will be either zero or one.
CREATE_TREE_NODE_CLASS | ( | truth_xor_expr | , |
binary_expr | |||
) |
This struct specifies the truth_xor_expr node.
XOR always compute the second operand whether its value is needed or not (for side effects). The operand may have BOOLEAN_TYPE or INTEGER_TYPE. The argument will be either zero or one.
CREATE_TREE_NODE_CLASS | ( | try_catch_expr | , |
binary_expr | |||
) |
This struct specifies the try_catch_expr node.
Evaluate operand 1. If and only if an exception is thrown during the evaluation of operand 1, evaluate operand 2. This differs from TRY_FINALLY_EXPR in that operand 2 is not evaluated on a normal or jump exit, only on an exception.
CREATE_TREE_NODE_CLASS | ( | try_finally | , |
binary_expr | |||
) |
This struct specifies the try_finally node.
Evaluate the first operand. The second operand is a cleanup expression which is evaluated on any exit (normal, exception, or jump out) from this expression.
CREATE_TREE_NODE_CLASS | ( | typename_type | , |
type_node | |||
) |
struct definition of the typename_type tree node.
The tree walker structure of this node is: #(TOK_TYPENAME_TYPE type_node)
CREATE_TREE_NODE_CLASS | ( | uneq_expr | , |
binary_expr | |||
) |
This struct specifies the uneq_expr node.
This is equivalent to unordered or ...
CREATE_TREE_NODE_CLASS | ( | unge_expr | , |
binary_expr | |||
) |
This struct specifies the unge_expr node.
This is equivalent to unordered or ...
CREATE_TREE_NODE_CLASS | ( | ungt_expr | , |
binary_expr | |||
) |
This struct specifies the ungt_expr node.
This is equivalent to unordered or ...
CREATE_TREE_NODE_CLASS | ( | unle_expr | , |
binary_expr | |||
) |
This struct specifies the unle_expr node.
This is equivalent to unordered or ...
CREATE_TREE_NODE_CLASS | ( | unlt_expr | , |
binary_expr | |||
) |
This struct specifies the unlt_expr node.
This is equivalent to unordered or ...
CREATE_TREE_NODE_CLASS | ( | unordered_expr | , |
binary_expr | |||
) |
This struct specifies the unordered_expr node.
Additional relational operator for floating point unordered.
CREATE_TREE_NODE_CLASS | ( | unsave_expr | , |
unary_expr | |||
) |
This struct specifies the unsave_expr node.
The operand is the value to unsave. By unsave, we mean that all _EXPRs such as TARGET_EXPRs, SAVE_EXPRs, CALL_EXPRs and RTL_EXPRs, that are protected from being evaluated more than once should be reset so that a new expand_expr call of this expr will cause those to be re-evaluated. This is useful when we want to reuse a tree in different places, but where we must re-expand.
CREATE_TREE_NODE_CLASS | ( | using_decl | , |
decl_node | |||
) |
A using declaration.
USING_DECL_SCOPE contains the specified scope. In a member using decl, unless DECL_DEPENDENT_P is true, USING_DECL_DECLS contains the _DECL or OVERLOAD so named. This is not an alias, but is later expanded into multiple aliases.
CREATE_TREE_NODE_CLASS | ( | va_arg_expr | , |
unary_expr | |||
) |
This struct specifies the va_arg_expr node.
Used to implement `va_arg'.
CREATE_TREE_NODE_CLASS | ( | dot_prod_expr | , |
ternary_expr | |||
) |
Widening dot-product.
The first two arguments are of type t1. The third argument and the result are of type t2, such that t2 is at least twice the size of t1. DOT_PROD_EXPR(arg1,arg2,arg3) is equivalent to: tmp = WIDEN_MULT_EXPR(arg1, arg2); arg3 = PLUS_EXPR (tmp, arg3); or: tmp = WIDEN_MULT_EXPR(arg1, arg2); arg3 = WIDEN_SUM_EXPR (tmp, arg3);
CREATE_TREE_NODE_CLASS | ( | vec_cond_expr | , |
ternary_expr | |||
) |
Vector conditional expression.
It is like COND_EXPR, but with vector operands.
A = VEC_COND_EXPR ( X < Y, B, C)
means
for (i=0; i<N; i++) A[i] = X[i] < Y[i] ? B[i] : C[i];
CREATE_TREE_NODE_CLASS | ( | vec_perm_expr | , |
ternary_expr | |||
) |
Vector permutation expression.
A = VEC_PERM_EXPR<v0, v1, mask> means
N = length(mask) foreach i in N: M = mask[i] % (2*N) A = M < N ? v0[M] : v1[M-N]
V0 and V1 are vectors of the same type. MASK is an integer-typed vector. The number of MASK elements must be the same with the number of elements in V0 and V1. The size of the inner type of the MASK and of the V0 and V1 must be the same.
CREATE_TREE_NODE_CLASS | ( | vec_lshift_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | vec_rshift_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | widen_mult_hi_expr | , |
binary_expr | |||
) |
Widening vector multiplication.
The two operands are vectors with N elements of size S. Multiplying the elements of the two vectors will result in N products of size 2*S. VEC_WIDEN_MULT_HI_EXPR computes the N/2 high products. VEC_WIDEN_MULT_LO_EXPR computes the N/2 low products.
CREATE_TREE_NODE_CLASS | ( | widen_mult_lo_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | vec_unpack_hi_expr | , |
unary_expr | |||
) |
Unpack (extract and promote/widen) the high/low elements of the input vector into the output vector.
The input vector has twice as many elements as the output vector, that are half the size of the elements of the output vector. This is used to support type promotion.
CREATE_TREE_NODE_CLASS | ( | vec_unpack_lo_expr | , |
unary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | vec_unpack_float_hi_expr | , |
unary_expr | |||
) |
Unpack (extract) the high/low elements of the input vector, convert fixed point values to floating point and widen elements into the output vector.
The input vector has twice as many elements as the output vector, that are half the size of the elements of the output vector.
CREATE_TREE_NODE_CLASS | ( | vec_unpack_float_lo_expr | , |
unary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | vec_pack_trunc_expr | , |
binary_expr | |||
) |
Pack (demote/narrow and merge) the elements of the two input vectors into the output vector using truncation/saturation.
The elements of the input vectors are twice the size of the elements of the output vector. This is used to support type demotion.
CREATE_TREE_NODE_CLASS | ( | vec_pack_sat_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | vec_pack_fix_trunc_expr | , |
binary_expr | |||
) |
Convert floating point values of the two input vectors to integer and pack (narrow and merge) the elements into the output vector.
The elements of the input vector are twice the size of the elements of the output vector.
CREATE_TREE_NODE_CLASS | ( | vec_extracteven_expr | , |
binary_expr | |||
) |
Extract even/odd fields from vectors.
CREATE_TREE_NODE_CLASS | ( | vec_extractodd_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | vec_interleavehigh_expr | , |
binary_expr | |||
) |
Merge input vectors interleaving their fields.
CREATE_TREE_NODE_CLASS | ( | vec_interleavelow_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | vec_new_expr | , |
expr_node | |||
) |
This struct represents a vector new expression.
CREATE_TREE_NODE_CLASS | ( | void_cst | , |
cst_node | |||
) |
VOID_CST node.
CREATE_TREE_NODE_CLASS | ( | view_convert_expr | , |
unary_expr | |||
) |
This struct specifies the view_convert_expr node.
Represents viewing something of one type as being of a second type. This corresponds to an "Unchecked Conversion" in Ada and roughly to the idiom *(type2 *)&X in C. The only operand is the value to be viewed as being of another type. It is undefined if the type of the input and of the expression have different sizes.
This code may also be used within the LHS of a MODIFY_EXPR, in which case no actual data motion may occur. TREE_ADDRESSABLE will be set in this case and GCC must abort if it could not do the operation without generating insns.
CREATE_TREE_NODE_CLASS | ( | void_type | , |
type_node | |||
) |
struct definition of the void_type tree node.
The tree walker structure of this node is: #(TOK_VOID_TYPE type_node);
CREATE_TREE_NODE_CLASS | ( | vtable_ref | , |
ternary_expr | |||
) |
This struct specifies the vtable_ref node.
Vtable indexing. Carries data useful for emitting information for vtable garbage collection. Operand 0: an array_ref (or equivalent expression) Operand 1: the vtable base (must be a var_decl) Operand 2: index into vtable (must be an integer_cst).
CREATE_TREE_NODE_CLASS | ( | with_cleanup_expr | , |
ternary_expr | |||
) |
This struct specifies the with_cleanup_expr node.
Specify a value to compute along with its corresponding cleanup. Operand 0 argument is an expression whose value needs a cleanup. Operand 1 is the cleanup expression for the object. Operand 2 is an RTL_EXPR which will eventually represent that value. The RTL_EXPR is used in this expression, which is how the expression manages to act on the proper value. The cleanup is executed by the first enclosing CLEANUP_POINT_EXPR, if it exists, otherwise it is the responsibility of the caller to manually call expand_start_target_temps/expand_end_target_temps, as needed. This differs from TRY_CATCH_EXPR in that operand 2 is always evaluated when an exception isn't thrown when cleanups are run.
CREATE_TREE_NODE_CLASS | ( | with_size_expr | , |
binary_expr | |||
) |
CREATE_TREE_NODE_CLASS | ( | widen_sum_expr | , |
binary_expr | |||
) |
Widening summation.
The first argument is of type t1. The second argument is of type t2, such that t2 is at least twice the size of t1. The type of the entire expression is also t2. WIDEN_SUM_EXPR is equivalent to first widening (promoting) the first argument from type t1 to type t2, and then summing it with the second argument.
CREATE_TREE_NODE_CLASS | ( | widen_mult_expr | , |
binary_expr | |||
) |
Widening multiplication.
The two arguments are of type t1. The result is of type t2, such that t2 is at least twice the size of t1. WIDEN_MULT_EXPR is equivalent to first widening (promoting) the arguments from type t1 to type t2, and then multiplying them.
CREATE_TREE_NODE_CLASS | ( | extract_bit_expr | , |
binary_expr | |||
) |
extract_bit_expr extracts a bit value from a SSA/integer const op0 is the SSA variable op1 is the bit position return a Boolean value
CREATE_TREE_NODE_CLASS | ( | sat_plus_expr | , |
binary_expr | |||
) |
This struct specifies the sat_plus_expr node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | sat_minus_expr | , |
binary_expr | |||
) |
This struct specifies the sat_minus_expr node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | fshl_expr | , |
ternary_expr | |||
) |
This struct specifies the fshl_expr node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | fshr_expr | , |
ternary_expr | |||
) |
This struct specifies the fshr_expr node.
Simple arithmetic.
CREATE_TREE_NODE_CLASS | ( | extractvalue_expr | , |
binary_expr | |||
) |
This struct specifies the extractvalue_expr node.
extract a value from an aggregate.
CREATE_TREE_NODE_CLASS | ( | insertvalue_expr | , |
ternary_expr | |||
) |
This struct specifies the insertvalue_expr node.
insert a value into an aggregate.
CREATE_TREE_NODE_CLASS | ( | extractelement_expr | , |
binary_expr | |||
) |
This struct specifies the extractelement_expr node.
extract a value from a vector.
CREATE_TREE_NODE_CLASS | ( | insertelement_expr | , |
ternary_expr | |||
) |
This struct specifies the insertelement_expr node.
insert a value into a vector.
CREATE_TREE_NODE_CLASS | ( | frem_expr | , |
binary_expr | |||
) |
This struct specifies the frem node.
Simple arithmetic.
REF_FORWARD_DECL | ( | bloc | ) |
REF_FORWARD_DECL | ( | tree_manager | ) |
REF_FORWARD_DECL | ( | tree_node | ) |
REF_FORWARD_DECL | ( | Range | ) |