46 #include <boost/lexical_cast.hpp> 54 static bool check_value_opt(
const std::map<TreeVocabularyTokenTypes_TokenEnum, std::string>::const_iterator& it_element,
55 const std::map<TreeVocabularyTokenTypes_TokenEnum, std::string>::const_iterator& it_end,
58 return it_element == it_end || value == boost::lexical_cast<
type>(it_element->second);
61 static bool check_value_opt(
const std::map<TreeVocabularyTokenTypes_TokenEnum, std::string>::const_iterator& it_element,
62 const std::map<TreeVocabularyTokenTypes_TokenEnum, std::string>::const_iterator& it_end,
65 return it_element == it_end ||
69 #define CHECK_VALUE_OPT(token, value) check_value_opt(tree_node_schema.find(TOK(token)), tree_node_schema.end(), value) 72 check_tree_node_opt(
const std::map<TreeVocabularyTokenTypes_TokenEnum, std::string>::const_iterator& it_element,
73 const std::map<TreeVocabularyTokenTypes_TokenEnum, std::string>::const_iterator& it_end,
76 return it_element == it_end || (tn &&
GET_INDEX_NODE(tn) == std::stoull(it_element->second));
79 #define CHECK_TREE_NODE_OPT(token, treeN) \ 80 check_tree_node_opt(tree_node_schema.find(TOK(token)), tree_node_schema.end(), treeN, STOK(token)) 82 #define TREE_NOT_YET_IMPLEMENTED(token) \ 83 THROW_ASSERT(tree_node_schema.find(TOK(token)) == tree_node_schema.end(), \ 84 std::string("field not yet supported ") + STOK(token)) 86 void tree_node_finder::operator()(
const tree_node* obj,
unsigned int&)
91 void tree_node_finder::operator()(
const WeightedNode* obj,
unsigned int& mask)
93 tree_node_mask::operator()(obj, mask);
96 void tree_node_finder::operator()(
const tree_reindex* obj,
unsigned int&)
101 void tree_node_finder::operator()(
const attr* obj,
unsigned int& mask)
103 tree_node_mask::operator()(obj, mask);
107 void tree_node_finder::operator()(
const srcp* obj,
unsigned int& mask)
109 tree_node_mask::operator()(obj, mask);
116 void tree_node_finder::operator()(
const decl_node* obj,
unsigned int& mask)
118 tree_node_mask::operator()(obj, mask);
129 void tree_node_finder::operator()(
const expr_node* obj,
unsigned int& mask)
131 tree_node_mask::operator()(obj, mask);
135 void tree_node_finder::operator()(
const gimple_node* obj,
unsigned int& mask)
137 tree_node_mask::operator()(obj, mask);
142 void tree_node_finder::operator()(
const unary_expr* obj,
unsigned int& mask)
144 tree_node_mask::operator()(obj, mask);
148 void tree_node_finder::operator()(
const binary_expr* obj,
unsigned int& mask)
150 tree_node_mask::operator()(obj, mask);
154 void tree_node_finder::operator()(
const ternary_expr* obj,
unsigned int& mask)
156 tree_node_mask::operator()(obj, mask);
161 void tree_node_finder::operator()(
const quaternary_expr* obj,
unsigned int& mask)
163 tree_node_mask::operator()(obj, mask);
168 void tree_node_finder::operator()(
const type_node* obj,
unsigned int& mask)
170 tree_node_mask::operator()(obj, mask);
177 void tree_node_finder::operator()(
const memory_tag* obj,
unsigned int& mask)
179 tree_node_mask::operator()(obj, mask);
186 void tree_node_finder::operator()(
const cst_node* obj,
unsigned int& mask)
188 tree_node_mask::operator()(obj, mask);
192 void tree_node_finder::operator()(
const error_mark* obj,
unsigned int& mask)
194 tree_node_mask::operator()(obj, mask);
197 void tree_node_finder::operator()(
const array_type* obj,
unsigned int& mask)
199 tree_node_mask::operator()(obj, mask);
203 void tree_node_finder::operator()(
const gimple_asm* obj,
unsigned int& mask)
205 tree_node_mask::operator()(obj, mask);
211 void tree_node_finder::operator()(
const baselink* obj,
unsigned int& mask)
213 tree_node_mask::operator()(obj, mask);
217 void tree_node_finder::operator()(
const gimple_bind* obj,
unsigned int& mask)
219 tree_node_mask::operator()(obj, mask);
227 void tree_node_finder::operator()(
const binfo* obj,
unsigned int& mask)
229 tree_node_mask::operator()(obj, mask);
243 void tree_node_finder::operator()(
const block* obj,
unsigned int& mask)
245 tree_node_mask::operator()(obj, mask);
250 void tree_node_finder::operator()(
const call_expr* obj,
unsigned int& mask)
252 tree_node_mask::operator()(obj, mask);
257 void tree_node_finder::operator()(
const aggr_init_expr* obj,
unsigned int& mask)
259 tree_node_mask::operator()(obj, mask);
263 void tree_node_finder::operator()(
const gimple_call* obj,
unsigned int& mask)
265 tree_node_mask::operator()(obj, mask);
270 void tree_node_finder::operator()(
const case_label_expr* obj,
unsigned int& mask)
272 tree_node_mask::operator()(obj, mask);
277 void tree_node_finder::operator()(
const cast_expr* obj,
unsigned int& mask)
279 tree_node_mask::operator()(obj, mask);
283 void tree_node_finder::operator()(
const complex_cst* obj,
unsigned int& mask)
285 tree_node_mask::operator()(obj, mask);
289 void tree_node_finder::operator()(
const complex_type* obj,
unsigned int& mask)
291 tree_node_mask::operator()(obj, mask);
296 void tree_node_finder::operator()(
const gimple_cond* obj,
unsigned int& mask)
298 tree_node_mask::operator()(obj, mask);
302 void tree_node_finder::operator()(
const const_decl* obj,
unsigned int& mask)
304 tree_node_mask::operator()(obj, mask);
308 void tree_node_finder::operator()(
const constructor* obj,
unsigned int& mask)
310 tree_node_mask::operator()(obj, mask);
323 void tree_node_finder::operator()(
const enumeral_type* obj,
unsigned int& mask)
325 tree_node_mask::operator()(obj, mask);
331 void tree_node_finder::operator()(
const expr_stmt* obj,
unsigned int& mask)
333 tree_node_mask::operator()(obj, mask);
338 void tree_node_finder::operator()(
const field_decl* obj,
unsigned int& mask)
340 tree_node_mask::operator()(obj, mask);
346 void tree_node_finder::operator()(
const function_decl* obj,
unsigned int& mask)
348 tree_node_mask::operator()(obj, mask);
366 #if HAVE_FROM_PRAGMA_BUILT 375 void tree_node_finder::operator()(
const function_type* obj,
unsigned int& mask)
377 tree_node_mask::operator()(obj, mask);
382 void tree_node_finder::operator()(
const gimple_assign* obj,
unsigned int& mask)
384 tree_node_mask::operator()(obj, mask);
391 void tree_node_finder::operator()(
const gimple_goto* obj,
unsigned int& mask)
393 tree_node_mask::operator()(obj, mask);
397 void tree_node_finder::operator()(
const handler* obj,
unsigned int& mask)
399 tree_node_mask::operator()(obj, mask);
404 void tree_node_finder::operator()(
const identifier_node* obj,
unsigned int& mask)
406 tree_node_mask::operator()(obj, mask);
407 THROW_ERROR(
"Use find_identifier_nodeID to find identifier_node objects");
410 void tree_node_finder::operator()(
const integer_cst* obj,
unsigned int& mask)
412 tree_node_mask::operator()(obj, mask);
416 void tree_node_finder::operator()(
const integer_type* obj,
unsigned int& mask)
418 tree_node_mask::operator()(obj, mask);
426 void tree_node_finder::operator()(
const gimple_label* obj,
unsigned int& mask)
428 tree_node_mask::operator()(obj, mask);
432 void tree_node_finder::operator()(
const method_type* obj,
unsigned int& mask)
434 tree_node_mask::operator()(obj, mask);
438 void tree_node_finder::operator()(
const namespace_decl* obj,
unsigned int& mask)
440 tree_node_mask::operator()(obj, mask);
444 void tree_node_finder::operator()(
const overload* obj,
unsigned int& mask)
446 tree_node_mask::operator()(obj, mask);
451 void tree_node_finder::operator()(
const parm_decl* obj,
unsigned int& mask)
453 tree_node_mask::operator()(obj, mask);
460 void tree_node_finder::operator()(
const gimple_phi* obj,
unsigned int& mask)
462 tree_node_mask::operator()(obj, mask);
476 void tree_node_finder::operator()(
const pointer_type* obj,
unsigned int& mask)
478 tree_node_mask::operator()(obj, mask);
482 void tree_node_finder::operator()(
const real_cst* obj,
unsigned int& mask)
484 tree_node_mask::operator()(obj, mask);
489 void tree_node_finder::operator()(
const real_type* obj,
unsigned int& mask)
491 tree_node_mask::operator()(obj, mask);
495 void tree_node_finder::operator()(
const record_type* obj,
unsigned int& mask)
497 tree_node_mask::operator()(obj, mask);
514 void tree_node_finder::operator()(
const reference_type* obj,
unsigned int& mask)
516 tree_node_mask::operator()(obj, mask);
520 void tree_node_finder::operator()(
const result_decl* obj,
unsigned int& mask)
522 tree_node_mask::operator()(obj, mask);
527 void tree_node_finder::operator()(
const gimple_return* obj,
unsigned int& mask)
529 tree_node_mask::operator()(obj, mask);
533 void tree_node_finder::operator()(
const return_stmt* obj,
unsigned int& mask)
535 tree_node_mask::operator()(obj, mask);
540 void tree_node_finder::operator()(
const scope_ref* obj,
unsigned int& mask)
542 tree_node_mask::operator()(obj, mask);
546 void tree_node_finder::operator()(
const ssa_name* obj,
unsigned int& mask)
548 tree_node_mask::operator()(obj, mask);
559 void tree_node_finder::operator()(
const statement_list* obj,
unsigned int& mask)
561 tree_node_mask::operator()(obj, mask);
573 void tree_node_finder::operator()(
const string_cst* obj,
unsigned int& mask)
575 tree_node_mask::operator()(obj, mask);
579 void tree_node_finder::operator()(
const gimple_switch* obj,
unsigned int& mask)
581 tree_node_mask::operator()(obj, mask);
585 void tree_node_finder::operator()(
const target_expr* obj,
unsigned int& mask)
587 tree_node_mask::operator()(obj, mask);
592 void tree_node_finder::operator()(
const lut_expr* obj,
unsigned int& mask)
594 tree_node_mask::operator()(obj, mask);
602 void tree_node_finder::operator()(
const template_decl* obj,
unsigned int& mask)
604 tree_node_mask::operator()(obj, mask);
611 tree_node_mask::operator()(obj, mask);
618 void tree_node_finder::operator()(
const tree_list* obj,
unsigned int& mask)
620 tree_node_mask::operator()(obj, mask);
626 void tree_node_finder::operator()(
const tree_vec* obj,
unsigned int& mask)
628 tree_node_mask::operator()(obj, mask);
637 void tree_node_finder::operator()(
const try_block* obj,
unsigned int& mask)
639 tree_node_mask::operator()(obj, mask);
645 void tree_node_finder::operator()(
const type_decl* obj,
unsigned int& mask)
647 tree_node_mask::operator()(obj, mask);
652 void tree_node_finder::operator()(
const union_type* obj,
unsigned int& mask)
654 tree_node_mask::operator()(obj, mask);
666 void tree_node_finder::operator()(
const var_decl* obj,
unsigned int& mask)
668 tree_node_mask::operator()(obj, mask);
685 void tree_node_finder::operator()(
const vector_cst* obj,
unsigned int& mask)
687 tree_node_mask::operator()(obj, mask);
696 tree_node_mask::operator()(obj, mask);
702 tree_node_mask::operator()(obj, mask);
708 tree_node_mask::operator()(obj, mask);
715 tree_node_mask::operator()(obj, mask);
720 void tree_node_finder::operator()(
const vector_type* obj,
unsigned int& mask)
722 tree_node_mask::operator()(obj, mask);
726 void tree_node_finder::operator()(
const target_mem_ref* obj,
unsigned int& mask)
728 tree_node_mask::operator()(obj, mask);
736 void tree_node_finder::operator()(
const target_mem_ref461* obj,
unsigned int& mask)
738 tree_node_mask::operator()(obj, mask);
745 void tree_node_finder::operator()(
const bloc* obj,
unsigned int& mask)
747 tree_node_mask::operator()(obj, mask);
776 void tree_node_finder::operator()(
const gimple_while* obj,
unsigned int& mask)
778 tree_node_mask::operator()(obj, mask);
782 void tree_node_finder::operator()(
const gimple_for* obj,
unsigned int& mask)
784 tree_node_mask::operator()(obj, mask);
790 tree_node_mask::operator()(obj, mask);
794 void tree_node_finder::operator()(
const null_node* obj,
unsigned int& mask)
796 tree_node_mask::operator()(obj, mask);
799 void tree_node_finder::operator()(
const gimple_pragma* obj,
unsigned int& mask)
801 tree_node_mask::operator()(obj, mask);
804 void tree_node_finder::operator()(
const omp_pragma* obj,
unsigned int& mask)
806 tree_node_mask::operator()(obj, mask);
809 void tree_node_finder::operator()(
const omp_for_pragma* obj,
unsigned int& mask)
811 tree_node_mask::operator()(obj, mask);
816 tree_node_mask::operator()(obj, mask);
819 void tree_node_finder::operator()(
const omp_simd_pragma* obj,
unsigned int& mask)
821 tree_node_mask::operator()(obj, mask);
824 void tree_node_finder::operator()(
const omp_target_pragma* obj,
unsigned int& mask)
826 tree_node_mask::operator()(obj, mask);
831 tree_node_mask::operator()(obj, mask);
833 void tree_node_finder::operator()(
const omp_task_pragma* obj,
unsigned int& mask)
835 tree_node_mask::operator()(obj, mask);
840 tree_node_mask::operator()(obj, mask);
845 tree_node_mask::operator()(obj, mask);
850 tree_node_mask::operator()(obj, mask);
855 tree_node_mask::operator()(obj, mask);
858 void tree_node_finder::operator()(
const map_pragma* obj,
unsigned int& mask)
860 tree_node_mask::operator()(obj, mask);
863 void tree_node_finder::operator()(
const call_hw_pragma* obj,
unsigned int& mask)
865 tree_node_mask::operator()(obj, mask);
870 tree_node_mask::operator()(obj, mask);
873 void tree_node_finder::operator()(
const issue_pragma* obj,
unsigned int& mask)
875 tree_node_mask::operator()(obj, mask);
878 void tree_node_finder::operator()(
const profiling_pragma* obj,
unsigned int& mask)
880 tree_node_mask::operator()(obj, mask);
883 void tree_node_finder::operator()(
const blackbox_pragma* obj,
unsigned int& mask)
885 tree_node_mask::operator()(obj, mask);
890 tree_node_mask::operator()(obj, mask);
struct definition of the type_decl tree node.
bool static_static_flag
to manage C++ code with static member
tree_nodeRef ptd
ptd field points to the node for the type pointed to.
This struct specifies the integer_cst node.
static bool check_value_opt(const std::map< TreeVocabularyTokenTypes_TokenEnum, std::string >::const_iterator &it_element, const std::map< TreeVocabularyTokenTypes_TokenEnum, std::string >::const_iterator &it_end, const type &value)
tree_nodeRef in
in is the operand 2: ASM_INPUTS, this represents the inputs for the statement.
struct definition of the const_decl tree node.
This struct implements the target_expr node.
integer_cst_t value
The value of the integer cast.
bool default_flag
default_flag is true if the label is a 'default' label
int line
line is the line number where the compound_stmt is defined.
tree_nodeRef min
min: tree-dump.c use the macro TYPE_MIN_VALUE
tree_nodeRef init
init field holds the value to initialize a variable to.
tree_nodeRef op2
second operand
bool operating_system_flag
operating system flag: it's true when this is a variable of operating system library ...
tree_nodeRef size
size field holds the size of datum, in bits.
int used
used is nonzero if the name is used in its scope (macro TREE_USED)
This struct specifies the field bloc (basic block).
unsigned int prec
prec field is the number of bits used by this type (macro TYPE_PRECISION)
struct definition of the vector_type tree node.
unsigned int algn
algn field holds the alignment required for the datum, in bits.
struct definition of the array_type tree node.
tree_nodeRef max
max: tree-dump.c use the macro TYPE_MAX_VALUE
tree_nodeRef unql
unql field, in any member of such a chain, points to the start of the chain.
tree_nodeRef tmpl_parms
tmpl_parms holds template parameters It is a TREE_LIST, his VALU field is a TREE_VEC whose LIST_OF_OP...
struct definition of the real_type tree node.
tree_nodeRef name
name field contains info on the name used in the program for this type.It is either a TYPE_DECL node...
tree_nodeRef type
is the type of the baselink
bool writing_memory
True if function write in memory somehow.
tree_nodeRef next
Is the next statement.
tree_nodeRef bfld
binf field are information about this type, as a base type for itself.
unsigned int algn
algn field holds the alignment required for the datum, in bits.
tree_nodeRef op1
The second operand of the binary expression.
Any erroneous construct is parsed into a node of this type.
bool volatile_flag
volatile_flag is true if the node is public: it means that the name is accessible from outside...
This struct specifies the statement_list node.
std::string valr
valr is the real value
tree_nodeRef name
name field contains an identifier_node used to represent a name.
bool packed_flag
Indicated that objects of this type should be laid out in as compact a way as possible.
tree_nodeRef elts
field elts is the type of an vector element (tree-dump.c use the macro TREE_TYPE) ...
tree_nodeRef idx
INDEX register.
A HANDLER wraps a catch handler for the HANDLER_TYPE.
unsigned int column_number
column_number holds the column number.
tree_nodeRef param_packs
PACK_EXPANSION_PARAMETER_PACKS.
tree_nodeRef op
op is casted node
unsigned int line_number
line_number holds a line number.
struct definition of the source position.
tree_nodeRef type
type of the expression
tree_nodeRef orig
For any sort of a ..._DECL node, this points to the original (abstract) decl node which this decl is ...
Represents an argument pack of types (or templates).
tree_nodeRef op1
first operand
struct definition of the function_decl tree node.
tree_nodeRef size
size field contains a tree that is an expression for the size in bits.
struct definition of the method_type tree node.
tree_nodeRef decl
it is the target of an initialization
tree_nodeRef var
var is the variable being referenced (macro SSA_NAME_VAR).
tree_nodeRef arg
PACK_EXPANSION_EXTRA_ARGS.
TreeVocabularyTokenTypes_TokenEnum qual
qual is the set of type qualifiers for this type.
tree_nodeRef refd
refd field references to the node for the type referenced to.
tree_nodeRef imag
imag is the TREE_IMAGPART which content is other constant node.
bool undefined_flag
undefined_flag means external reference: do not allocate storage, and refer to a definition elsewhere...
tree_nodeRef prms
prms field is a list of types of arguments expected, this list is made of tree_list nodes...
tree_nodeRef mngl
mngl field contains the name of the object as the assembler will see it.
This struct specifies the gimple_label node.
tree_nodeRef size
size field holds the size of datum, in bits.
This struct specifies the string_cst node.
exceptions managed by PandA
#define TREE_NOT_YET_IMPLEMENTED(token)
tree_nodeRef op4
fourth operand
tree_nodeRef op2
The third operand of the ternary expression.
tree_nodeRef crnt
Is the current function declaration.
tree_nodeRef op1
The second operand of the Quaternary expression.
struct definition of the union_type tree node.
A simple interface to token object of the raw files.
tree_nodeRef fn
fn field is the initial declaration for this function declaration
struct definition of the unary node structures.
bool system_flag
system flag: it's true when this is a system variable
tree_nodeRef type
type field is the type of the node
tree_nodeRef smt_ann
symbol_memory_tag annotation
std::string bit_values
for each bit of the var_decl tells if it is equal to U,X,0,1 meaningful only in case the variable is ...
struct definition of the record_type tree node.
tree_nodeRef op6
sixth operand
tree_nodeRef op0
The first operand of the binary expression.
tree_nodeRef size
size field holds the size of datum, in bits.
GIMPLE_BIND <VARS, BLOCK, BODY> represents a lexical scope.
unsigned int prec
prec field is the number of bits used by this type (tree-dump.c use the macro TYPE_PRECISION) ...
tree_nodeRef base
BASE register.
tree_nodeRef op
PACK_EXPANSION_PATTERN.
#define GET_INDEX_NODE(t)
Macro used to hide implementation details when accessing a tree_node from another tree_node...
tree_nodeRef op1
The second operand of the binary expression.
struct definition of the ternary node structures.
bool ptrmem_flag
true when ptrmem obj is considered
tree_nodeRef tmpl_args
tmpl_args holds template instantiations It is a TREE_VEC whose LIST_OF_OP holds template instantiatio...
This struct specifies the gimple_cond node.
tree_nodeRef clas
clas field is the type of "self".
struct definition of the function_type tree node.
std::string valx
valx field
unsigned int algn
algn field holds the alignment required for the datum, in bits.
tree_nodeRef op7
seventh operand
tree_nodeRef op1
op1 is the operand 1 (macro CASE_HIGH) of the case label expression
std::string str
str is the operand 0: ASM_STRING. ASM_STRING returns a STRING_CST for the instruction (e...
tree_nodeRef argt
argt field is the type in which the argument is actually passed, which may be different from its type...
struct definition of the parm_decl tree node.
Data structure describing a basic block at tree level.
This class is used to perform the re-index of all tree nodes.
int line
line is the line number where the compound_stmt is defined.
tree_nodeRef chan
chan field: the decls in one binding context are chained through this field.
AGGR_INIT_EXPRs have a variably-sized representation similar to that of CALL_EXPRs.
Constructor: return an aggregate value made from specified components.
tree_nodeRef bpos
bpos field is the field position, counting in bytes, of the byte containing the bit closest to the be...
This struct specifies the binfo node.
struct definition of the template_decl tree node.
This struct represents a try-block statement.
bool varargs_flag
varargs flag: tells if function is of varargs type
#define TOK(token)
Macro used to convert a token symbol into a treeVocabularyTokenTypes.
tree_nodeRef binf
type context
bool real_flag
true when the complex base type is a float (macro COMPLEX_FLOAT_TYPE_P)
std::string include_name
include_name is a filename string, this can be the location of a reference, if no definition has been...
tree_nodeRef init
init field holds the value to initialize a variable to.
tree_nodeRef domn
field domn is the type to index by (tree-dump.c use the macro TYPE_DOMAIN).
tree_nodeRef spcs
prms field holds the specialization parameters vector.
Abstract pure class for the tree structure.
tree_nodeRef arg
arguments stored in the argument pack
tree_nodeRef res
res is the new SSA_NAME node created by the PHI node.
bool builtin_flag
flag true when the function is a builtin
struct definition of the label_decl tree node.
struct definition of the label_decl tree node.
tree_nodeRef op3
The fourth operand of the Quaternary expression.
Directive represinting mapping of a software function on a component.
struct definition of the result_decl tree node.
This struct specifies the vector_cst node.
tree_nodeRef scpe
context/scope of the type object.
tree_nodeRef memuse
whole memory operand use
virtual std::string get_kind_text() const =0
Virtual function returning the name of the actual class.
This struct specifies the gimple_phi node.
unsigned int loop_id
loop identifier coming from GCC
bool volatile_flag
in case a ssa_name is never defined this Boolean member is true
This struct represents a list-like node for chaining overloading candidates.
bool artificial_flag
artificial_flag field is used to indicate that this decl_node represents a compiler-generated entity...
struct definition of the Quaternary node structures.
int use_tmpl
use_tmpl indicates whether or not (and how) a template was expanded for this VAR_DECL.
bool unsigned_flag
unsigned means an unsigned type (macro TYPE_UNSIGNED)
tree_nodeRef init
it is the initializer for the target
tree_nodeRef body
is the body of the handler
bool unsigned_flag
unsigned means an unsigned type (tree-dump.c use the macro TYPE_UNSIGNED)
This struct specifies the gimple_assign node (GCC 4.3 tree node).
tree_nodeRef type
type field is the actual data type node being inherited in this basetype.(BINFO_TYPE) ...
tree_nodeRef tmpl_parms
tmpl_parms holds template parameters It is a TREE_LIST, his VALU field is a TREE_VEC whose LIST_OF_OP...
bool libbambu_flag
it is true when this is a declared inside libbambu
bool library_system_flag
library system flag: it's true when this is a variable of a standard library (e.g libmath) ...
bool register_flag
register_flag means declared 'register' (macro DECL_REGISTER)
This struct specifies super class for constant nodes.
tree_nodeRef tmpl_parms
tmpl_parms holds template parameters It is a TREE_LIST, his VALU field is a TREE_VEC whose LIST_OF_OP...
Directive represinting mapping of a function call on a component.
bool C_flag
is true when the declaration has the C attribute
tree_nodeRef tmpl_args
tmpl_args holds template instantiations It is a TREE_VEC whose LIST_OF_OP holds template instantiatio...
unsigned int hpl
store the relation between the phi defs inserted in the live_out set and phi uses ...
tree_nodeRef max
max: tree-dump.c use the macro TYPE_MAX_VALUE
Low-level memory addressing.
bool reverse_restrict_flag
True if parameters are not alias after its invocation.
This struct specifies the gimple_return node.
tree_nodeRef body
body field is the saved representation of the body of the entire function.
bool readonly_flag
readonly_flag means read-onlyy parameter (macro TREE_READONLY)
tree_nodeRef idx
INDEX register.
#define CHECK_TREE_NODE_OPT(token, treeN)
tree_nodeRef expr
Is the expression of the statement.
bool simple_pipeline
True if the pipeline does not contain any unbounded operation.
tree_nodeRef prms
prms field holds the template parameters vector.
bool addr_taken
True when we are able to prove that its address is taken and escape from a the function in which is d...
tree_nodeRef out
out is the operand 1: ASM_OUTPUTS, this represents the outputs for the statement. ...
Represents an expression that will be expanded into a list of expressions when instantiated with one ...
tree_nodeRef slot
slot is the slot which was allocated for this expression
This struct represents a reference to a member function or member functions from a base class...
bool register_flag
register_flag means declared 'register' (macro DECL_REGISTER)
struct definition of the function_decl tree node.
tree_nodeRef op3
third operand
tree_nodeRef chan
purp is the TREE_CHAIN field: tree_list nodes are made into lists by chaining through the TREE_CHAIN ...
tree_nodeRef param_packs
PACK_EXPANSION_PARAMETER_PACKS.
tree_nodeRef base
BASE register.
tree_nodeRef fn
fn is the operand 0 of the call expression: this is the function
tree_nodeRef retn
retn field is the type of value returned.
struct definition of the field_decl tree node.
tree_nodeRef step
STEP integer constant.
bool reading_memory
True if function read from memory somehow.
tree_nodeRef op0
the branch var
struct definition of the complex_type tree node.
tree_nodeRef predicate
The predicate.
tree_nodeRef arg
PACK_EXPANSION_EXTRA_ARGS.
Classes specification of the tree_node data structures.
GIMPLE_SWITCH <INDEX, DEFAULT_LAB, LAB1, ..., LABN> represents the multiway branch: ...
bool virt_flag
virt_flag is true if the node is a virtual declaration (macro TREE_VIA_VIRTUAL)
tree_nodeRef cls
If pointer mem struct type.
tree_nodeRef op0
The first operand of the ternary expression.
struct definition of the field attr on function_decl, field_decl, var_decl tree node.
#define THROW_ERROR(str_expr)
helper function used to throw an error in a standard way
bool static_flag
static_flag is true if function has been defined (macro TREE_STATIC)
tree_nodeRef smt_ann
symbol_memory_tag annotation
tree_nodeRef offset
OFFSET integer constant.
tree_nodeRef memdef
whole memory operand def
struct definition of the pointer_type tree node.
tree_nodeRef got
got field is the operand 2 (macro CASE_LABEL) of the case label expression
unsigned int algn
algn field is the alignment necessary for objects of this type.
tree_nodeRef binf
binf field are information about this type, as a base type for itself.
tree_nodeRef op0
true table constant
tree_nodeRef tag
result of the tree level alias analysis
tree_nodeRef orig
original memory access
This struct specifies the block node.
tree_nodeRef op0
The first operand of the binary expression.
tree_nodeRef dcls
declarations
int line
line is the line number where the compound_stmt is defined.
struct definition of common part of WeightedNode (gimple_assign, expr_node)
TreeVocabularyTokenTypes_TokenEnum
tree_nodeRef min
min: tree-dump.c use the macro TYPE_MIN_VALUE
struct definition of the reference_type tree node.
This struct specifies the cast_expr node.
tree_nodeRef hdlr
Is the handler of the statement.
bool operator_flag
it is true when the function_decl is an operator
bool overflow_flag
overflow_flag means there was an overflow in folding, and no warning has been issued for this subexpr...
tree_nodeRef tmpl_args
tmpl_args holds template instantiations It is a TREE_VEC whose LIST_OF_OP holds template instantiatio...
bool readonly_flag
readonly_flag means readonly parameter (macro TREE_READONLY)
int initiation_time
Used for pipelined with unbounded operations.
struct definition of the common part of an expression
tree_nodeRef type
type of the expression
tree_nodeRef cnst
field cnst holds the value of a constant (tree-dump.c use the macro DECL_INITIAL) ...
int fixd
Is the result of THUNK_FIXED_OFFSET(t) for this tree node.
bool virtual_flag
flag for virtual SSA
unsigned int vers
vers is the SSA version number of this SSA name.
tree_nodeRef init
init field holds the value to initialize a variable to.
This struct specifies the lut_expr node.
This struct specifies the complex_cst node.
tree_nodeRef type
type of the expression
bool static_flag
to manage standard static attribute
tree_nodeRef csts
csts is a list in which each element's TREE_PURPOSE is a name and the TREE_VALUE is the value (an int...
struct definition of the type node structures.
bool unsigned_flag
unsigned means an unsigned type (macro TYPE_UNSIGNED)
This struct specifies the tree_list node.
tree_nodeRef rslt
rslt is null for struct templates and declaration for object to be created for non-struct templates ...
Class specification of the tree_reindex support class.
tree_nodeRef clnp
it is the cleanup for this node
#define CHECK_VALUE_OPT(token, value)
This struct represent a statement expression.
int used
used is nonzero if the name is used in its scope (macro TREE_USED)
This struct specifies the call_expr node.
std::string strg
strg is the TREE_STRING_POINTER.
tree_nodeRef op1
initialization
unsigned int algn
algn field holds the alignment required for the datum, in bits.
tree_nodeRef body
Is the body of the statement.
tree_nodeRef min
minimum values this SSA may reach
tree_nodeRef op0
The first operand of the binary expression.
tree_nodeRef op0
op0 is the operand 0 (macro CASE_LOW) of the case label expression
tree_nodeRef step
STEP integer constant.
This struct specifies reference to particular overloaded struct method The tree walker structure of t...
struct definition of the common part of a gimple with virtual operands
This struct represent a 'return' statement.
This struct specifies a multi-way-if construct.
This struct specifies the real_cst node.
tree_nodeRef op0
The first operand of the Quaternary expression.
tree_nodeRef op0
The first operand of the ternary expression.
int virt
Is the result of tree_low_cst (THUNK_VIRTUAL_OFFSET (t), 0) for this node.
bool find_res
result of the search
tree_nodeRef vfld
FIXME: check the meaning.
tree_nodeRef idx2
INDEX register.
This struct specifies the case_label_expr node.
tree_nodeRef type
type field holds the data type of the object, when relevant.
tree_nodeRef op1
The second operand of the binary expression.
bool struct_flag
true when a struct is considered
Classes specification of the tree_node data structures not present in the gcc.
static bool check_tree_node_opt(const std::map< TreeVocabularyTokenTypes_TokenEnum, std::string >::const_iterator &it_element, const std::map< TreeVocabularyTokenTypes_TokenEnum, std::string >::const_iterator &it_end, const tree_nodeRef &tn, const std::string &)
tree_nodeRef inst
inst field holds the template instantiation vector.
unsigned int true_edge
in case the last statement is a gimple_cond associated with an if statement this member contains the ...
bool pipeline_enabled
True if pipelining is enabled for the function.
Low-level memory addressing.
bool spec_flag
true when a spec is considered
tree_nodeRef clob
clob is the operand 3: ASM_CLOBBERS, this represents the clobbers for the statement.
tree_nodeRef valu
purp is the TREE_VALUE field which stores the elements of the list.
tree_nodeRef purp
purp is the TREE_PURPOSE field occasionally used as well to get the effect of Lisp association lists...
int line
line is the line number where the compound_stmt is defined.
std::string bit_values
for each bit of the SSA variable tells if it is equal to U,X,0,1
This struct specifies the ssa_name node.
tree_nodeRef next
Is the next statement.
tree_nodeRef elts
field elts is the type of an array element (tree-dump.c use the macro TREE_TYPE)
tree_nodeRef ptd
If pointer mem point to type.
tree_nodeRef op
op field is the operand of this node
This struct specifies the gimple_goto node.
tree_nodeRef expr
Is the statement given by the expression.
This struct specifies the for expression Used to represent a for construct.
struct definition of the integer_type tree node.
struct definition of the integer_type tree node.
tree_nodeRef op1
the vec of CASE_LABEL_EXPRs
tree_nodeRef op2
postincrement
tree_nodeRef type
starting from GCC 4.7.2 ssa_name has a type
size_t lngt
lngt is the length of the array (list_of_op) stored in tree_vec node.(macro TREE_VEC_LENGTH) ...
tree_nodeRef op
PACK_EXPANSION_PATTERN.
struct definition of the binary node structures.
tree_nodeRef smt_ann
symbol_memory_tag annotation
tree_nodeRef type
type field is the type of the node
This struct specifies the tree_vec node.
const std::map< TreeVocabularyTokenTypes_TokenEnum, std::string > & tree_node_schema
tree_node_schema expresses the value of the fields of the tree node we are looking for...
unsigned int orig_vers
original SSA version number from GCC
bool packed_flag
Indicates this field should be bit-packed.
tree_nodeRef arg
arguments stored in the argument pack
tree_nodeRef op8
eighth operand
tree_nodeRef op
op field is the operand of the unary expression
tree_nodeRef smt_ann
symbol_memory_tag annotation
tree_nodeRef body
body is the operand 1 (GIMPLE_BIND_BODY), this is the body, the expression to be computed using the v...
tree_nodeRef op0
The boolean condition.
tree_nodeRef symbol
static or global variable
tree_nodeRef scpe
scope declaration
tree_nodeRef real
real is the TREE_REALPART which content is other constant node.
This struct specifies the gimple_asm node.
tree_nodeRef inline_body
java inline body
tree_nodeRef op1
The second operand of the ternary expression.
bool extern_flag
a variable can be extern
tree_nodeRef max
maximum values this SSA may reach
tree_nodeRef size
size field holds the size of datum, in bits.
This struct specifies the gimple_call node.
tree_nodeRef op5
fifth operand
tree_nodeRef offset
OFFSET integer constant.
struct definition of the declaration node structures.
bool addr_not_taken
True when we are able to prove that its address is not taken and do not escape.
int bases
The number of basetypes for NODE.
tree_nodeRef op2
The third operand of the Quaternary expression.
tree_nodeRef chan
Is the chain.
unsigned int false_edge
in case the last statement is a gimple_cond associated with an if statement this member contains the ...
bool hwcall_flag
flag true when the function is marked as hwcall
unsigned int prec
prec field is the number of bits used by this type.
This struct specifies the while expression Used to represent a while construct.
tree_nodeRef fn
fn is the operand 0 of the call expression: this is the function
Represents a type expression that will be expanded into a list of types when instantiated with one or...
Memory tags used in tree-ssa to represent memory locations in virtual SSA.