GCC Middle and Back End API Reference
tree-core.h File Reference
#include "hashtab.h"
#include "machmode.h"
#include "input.h"
#include "statistics.h"
#include "vec.h"
#include "double-int.h"
#include "real.h"
#include "fixed-value.h"
#include "alias.h"
#include "flags.h"
#include "symtab.h"
#include "all-tree.def"
#include "builtins.def"
#include "treestruct.def"
Include dependency graph for tree-core.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  alias_pair
struct  tree_base
struct  tree_typed
struct  tree_common
struct  tree_int_cst
struct  tree_real_cst
struct  tree_fixed_cst
struct  tree_string
struct  tree_complex
struct  tree_vector
struct  tree_identifier
struct  tree_list
struct  tree_vec
struct  constructor_elt_d
struct  tree_constructor
struct  tree_exp
struct  ssa_use_operand_d

Macros

#define ECF_CONST   (1 << 0)
#define ECF_PURE   (1 << 1)
#define ECF_LOOPING_CONST_OR_PURE   (1 << 2)
#define ECF_NORETURN   (1 << 3)
#define ECF_MALLOC   (1 << 4)
#define ECF_MAY_BE_ALLOCA   (1 << 5)
#define ECF_NOTHROW   (1 << 6)
#define ECF_RETURNS_TWICE   (1 << 7)
#define ECF_SIBCALL   (1 << 8)
#define ECF_NOVOPS   (1 << 9)
#define ECF_LEAF   (1 << 10)
#define ECF_TM_PURE   (1 << 11)
#define ECF_TM_BUILTIN   (1 << 12)
#define EAF_DIRECT   (1 << 0)
#define EAF_NOCLOBBER   (1 << 1)
#define EAF_NOESCAPE   (1 << 2)
#define EAF_UNUSED   (1 << 3)
#define ERF_RETURN_ARG_MASK   (3)
#define ERF_RETURNS_ARG   (1 << 2)
#define ERF_NOALIAS   (1 << 3)
#define DEFTREECODE(SYM, STRING, TYPE, NARGS)   SYM,
#define END_OF_BASE_TREE_CODES   LAST_AND_UNUSED_TREE_CODE,
#define NUM_TREE_CODES   ((int) LAST_AND_UNUSED_TREE_CODE)
#define CODE_CONTAINS_STRUCT(CODE, STRUCT)   (tree_contains_struct[(CODE)][(STRUCT)])
#define BUILT_IN_LAST   (BUILT_IN_NORMAL + 1)
#define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND)   ENUM,
#define DEFTREESTRUCT(ENUM, NAME)   ENUM,

Typedefs

typedef struct alias_pair alias_pair
typedef unsigned short priority_type
typedef tree(* walk_tree_fn )(tree *, int *, void *)
typedef tree(* walk_tree_lh )(tree *, int *, tree(*)(tree *, int *, void *), void *, struct pointer_set_t *)
typedef struct constructor_elt_d constructor_elt
typedef struct ssa_use_operand_d ssa_use_operand_t

Enumerations

enum  tree_code { MAX_TREE_CODES }
enum  built_in_class { NOT_BUILT_IN = 0, BUILT_IN_FRONTEND, BUILT_IN_MD, BUILT_IN_NORMAL }
enum  built_in_function
enum  tree_code_class {
  tcc_exceptional, tcc_constant, tcc_type, tcc_declaration,
  tcc_reference, tcc_comparison, tcc_unary, tcc_binary,
  tcc_statement, tcc_vl_exp, tcc_expression
}
enum  omp_clause_code {
  OMP_CLAUSE_ERROR = 0, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
  OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
  OMP_CLAUSE_LINEAR, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_UNIFORM,
  OMP_CLAUSE_FROM, OMP_CLAUSE_TO, OMP_CLAUSE_MAP, OMP_CLAUSE__LOOPTEMP_,
  OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
  OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED,
  OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_DEVICE, OMP_CLAUSE_DIST_SCHEDULE,
  OMP_CLAUSE_INBRANCH, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
  OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_FOR,
  OMP_CLAUSE_PARALLEL, OMP_CLAUSE_SECTIONS, OMP_CLAUSE_TASKGROUP, OMP_CLAUSE__SIMDUID_
}
enum  tree_node_structure_enum { LAST_TS_ENUM }
enum  omp_clause_schedule_kind {
  OMP_CLAUSE_SCHEDULE_STATIC, OMP_CLAUSE_SCHEDULE_DYNAMIC, OMP_CLAUSE_SCHEDULE_GUIDED, OMP_CLAUSE_SCHEDULE_AUTO,
  OMP_CLAUSE_SCHEDULE_RUNTIME
}
enum  omp_clause_default_kind {
  OMP_CLAUSE_DEFAULT_UNSPECIFIED, OMP_CLAUSE_DEFAULT_SHARED, OMP_CLAUSE_DEFAULT_NONE, OMP_CLAUSE_DEFAULT_PRIVATE,
  OMP_CLAUSE_DEFAULT_FIRSTPRIVATE
}
enum  cv_qualifier { TYPE_UNQUALIFIED = 0x0, TYPE_QUAL_CONST = 0x1, TYPE_QUAL_VOLATILE = 0x2, TYPE_QUAL_RESTRICT = 0x4 }
enum  tree_index {
  TI_ERROR_MARK, TI_INTQI_TYPE, TI_INTHI_TYPE, TI_INTSI_TYPE,
  TI_INTDI_TYPE, TI_INTTI_TYPE, TI_UINTQI_TYPE, TI_UINTHI_TYPE,
  TI_UINTSI_TYPE, TI_UINTDI_TYPE, TI_UINTTI_TYPE, TI_UINT16_TYPE,
  TI_UINT32_TYPE, TI_UINT64_TYPE, TI_INTEGER_ZERO, TI_INTEGER_ONE,
  TI_INTEGER_THREE, TI_INTEGER_MINUS_ONE, TI_NULL_POINTER, TI_SIZE_ZERO,
  TI_SIZE_ONE, TI_BITSIZE_ZERO, TI_BITSIZE_ONE, TI_BITSIZE_UNIT,
  TI_PUBLIC, TI_PROTECTED, TI_PRIVATE, TI_BOOLEAN_FALSE,
  TI_BOOLEAN_TRUE, TI_COMPLEX_INTEGER_TYPE, TI_COMPLEX_FLOAT_TYPE, TI_COMPLEX_DOUBLE_TYPE,
  TI_COMPLEX_LONG_DOUBLE_TYPE, TI_FLOAT_TYPE, TI_DOUBLE_TYPE, TI_LONG_DOUBLE_TYPE,
  TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE, TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE,
  TI_VOID_TYPE, TI_PTR_TYPE, TI_CONST_PTR_TYPE, TI_SIZE_TYPE,
  TI_PID_TYPE, TI_PTRDIFF_TYPE, TI_VA_LIST_TYPE, TI_VA_LIST_GPR_COUNTER_FIELD,
  TI_VA_LIST_FPR_COUNTER_FIELD, TI_BOOLEAN_TYPE, TI_FILEPTR_TYPE, TI_POINTER_SIZED_TYPE,
  TI_POINTER_BOUNDS_TYPE, TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
  TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE, TI_VOID_LIST_NODE,
  TI_MAIN_IDENTIFIER, TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
  TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE, TI_SAT_ULFRACT_TYPE,
  TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE, TI_FRACT_TYPE, TI_LFRACT_TYPE,
  TI_LLFRACT_TYPE, TI_USFRACT_TYPE, TI_UFRACT_TYPE, TI_ULFRACT_TYPE,
  TI_ULLFRACT_TYPE, TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
  TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE, TI_SAT_ULACCUM_TYPE,
  TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE, TI_ACCUM_TYPE, TI_LACCUM_TYPE,
  TI_LLACCUM_TYPE, TI_USACCUM_TYPE, TI_UACCUM_TYPE, TI_ULACCUM_TYPE,
  TI_ULLACCUM_TYPE, TI_QQ_TYPE, TI_HQ_TYPE, TI_SQ_TYPE,
  TI_DQ_TYPE, TI_TQ_TYPE, TI_UQQ_TYPE, TI_UHQ_TYPE,
  TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE, TI_SAT_QQ_TYPE,
  TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE, TI_SAT_TQ_TYPE,
  TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE, TI_SAT_UDQ_TYPE,
  TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
  TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE,
  TI_UTA_TYPE, TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE,
  TI_SAT_TA_TYPE, TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE,
  TI_SAT_UTA_TYPE, TI_OPTIMIZATION_DEFAULT, TI_OPTIMIZATION_CURRENT, TI_TARGET_OPTION_DEFAULT,
  TI_TARGET_OPTION_CURRENT, TI_CURRENT_TARGET_PRAGMA, TI_CURRENT_OPTIMIZE_PRAGMA, TI_MAX
}
enum  integer_type_kind {
  itk_char, itk_signed_char, itk_unsigned_char, itk_short,
  itk_unsigned_short, itk_int, itk_unsigned_int, itk_long,
  itk_unsigned_long, itk_long_long, itk_unsigned_long_long, itk_int128,
  itk_unsigned_int128, itk_none
}
enum  ptrmemfunc_vbit_where_t { ptrmemfunc_vbit_in_pfn, ptrmemfunc_vbit_in_delta }
enum  attribute_flags {
  ATTR_FLAG_DECL_NEXT = 1, ATTR_FLAG_FUNCTION_NEXT = 2, ATTR_FLAG_ARRAY_NEXT = 4, ATTR_FLAG_TYPE_IN_PLACE = 8,
  ATTR_FLAG_BUILT_IN = 16, ATTR_FLAG_CXX11 = 32
}
enum  size_type_kind {
  stk_sizetype, stk_ssizetype, stk_bitsizetype, stk_sbitsizetype,
  stk_type_kind_last
}
enum  operand_equal_flag { OEP_ONLY_CONST = 1, OEP_PURE_SAME = 2, OEP_CONSTANT_ADDRESS_OF = 4 }
enum  tree_node_kind {
  d_kind, t_kind, b_kind, s_kind,
  r_kind, e_kind, c_kind, id_kind,
  vec_kind, binfo_kind, ssa_name_kind, constr_kind,
  x_kind, lang_decl, lang_type, omp_clause_kind,
  all_kinds
}
enum  annot_expr_kind { annot_expr_ivdep_kind }
enum  omp_clause_depend_kind { OMP_CLAUSE_DEPEND_IN, OMP_CLAUSE_DEPEND_OUT, OMP_CLAUSE_DEPEND_INOUT }
enum  omp_clause_map_kind {
  OMP_CLAUSE_MAP_ALLOC, OMP_CLAUSE_MAP_TO, OMP_CLAUSE_MAP_FROM, OMP_CLAUSE_MAP_TOFROM,
  OMP_CLAUSE_MAP_POINTER
}
enum  omp_clause_proc_bind_kind {
  OMP_CLAUSE_PROC_BIND_FALSE = 0, OMP_CLAUSE_PROC_BIND_TRUE = 1, OMP_CLAUSE_PROC_BIND_MASTER = 2, OMP_CLAUSE_PROC_BIND_CLOSE = 3,
  OMP_CLAUSE_PROC_BIND_SPREAD = 4
}

Macro Definition Documentation

#define BUILT_IN_LAST   (BUILT_IN_NORMAL + 1)

Last marker used for LTO stremaing of built_in_class. We can not add it to the enum since we need the enumb to fit in 2 bits.

#define CODE_CONTAINS_STRUCT (   CODE,
  STRUCT 
)    (tree_contains_struct[(CODE)][(STRUCT)])
#define DEF_BUILTIN (   ENUM,
  N,
  C,
  T,
  LT,
  B,
  F,
  NA,
  AT,
  IM,
  COND 
)    ENUM,

Codes that identify the various built in functions so that expand_call can identify them quickly.

#define DEFTREECODE (   SYM,
  STRING,
  TYPE,
  NARGS 
)    SYM,

Codes of tree nodes.

#define DEFTREESTRUCT (   ENUM,
  NAME 
)    ENUM,
#define EAF_DIRECT   (1 << 0)

Call argument flags. Nonzero if the argument is not dereferenced recursively, thus only directly reachable memory is read or written.

Referenced by gimple_set_body().

#define EAF_NOCLOBBER   (1 << 1)

Nonzero if memory reached by the argument is not clobbered.

Referenced by gimple_set_body().

#define EAF_NOESCAPE   (1 << 2)

Nonzero if the argument does not escape.

Referenced by gimple_set_body().

#define EAF_UNUSED   (1 << 3)

Nonzero if the argument is not used by the function.

Referenced by gimple_set_body().

#define ECF_CONST   (1 << 0)

Nonzero if this is a call to a function whose return value depends solely on its arguments, has no side effects, and does not read global memory. This corresponds to TREE_READONLY for function decls.

Referenced by do_partial_partial_insertion(), replace_phi_args_in(), and vect_get_vec_defs_for_stmt_copy().

#define ECF_LEAF   (1 << 10)

The function does not lead to calls within current function unit.

Referenced by find_case_label_for_value(), ipa_reference_get_not_read_global(), set_reference_optimization_summary(), and special_function_p().

#define ECF_LOOPING_CONST_OR_PURE   (1 << 2)

Nonzero if this is ECF_CONST or ECF_PURE but cannot be proven to no infinite loop. This corresponds to DECL_LOOPING_CONST_OR_PURE_P for function decls.

Referenced by do_partial_partial_insertion(), flags_from_decl_or_type(), initialize_argument_information(), and replace_phi_args_in().

#define ECF_MALLOC   (1 << 4)

Nonzero if this is a call to malloc or a related function.

Referenced by gimple_body().

#define ECF_MAY_BE_ALLOCA   (1 << 5)

Nonzero if it is plausible that this is a call to alloca.

#define ECF_NORETURN   (1 << 3)

Nonzero if this call will never return.

Referenced by dump_possible_polymorphic_call_targets(), flags_from_decl_or_type(), and special_function_p().

#define ECF_NOTHROW   (1 << 6)

Nonzero if this is a call to a function that won't throw an exception.

Referenced by cgraph_for_node_and_aliases(), dump_function_to_file(), and remove_eh_handler().

#define ECF_NOVOPS   (1 << 9)

Function does not read or write memory (but may have side effects, so it does not necessarily fit ECF_CONST).

Referenced by vect_get_vec_defs_for_stmt_copy().

#define ECF_PURE   (1 << 1)

Nonzero if this is a call to "pure" function (like const function, but may read memory. This corresponds to DECL_PURE_P for function decls.

Referenced by initialize_argument_information(), replace_phi_args_in(), and vect_get_vec_defs_for_stmt_copy().

#define ECF_RETURNS_TWICE   (1 << 7)

Nonzero if this is a call to setjmp or a related function.

Referenced by dump_function_to_file().

#define ECF_SIBCALL   (1 << 8)

Nonzero if this call replaces the current stack frame.

#define ECF_TM_BUILTIN   (1 << 12)

Nonzero if this call is into the transaction runtime library.

#define ECF_TM_PURE   (1 << 11)

Nonzero if this call does not affect transactions.

#define END_OF_BASE_TREE_CODES   LAST_AND_UNUSED_TREE_CODE,
#define ERF_NOALIAS   (1 << 3)

Nonzero if the return value does not alias with anything. Functions with the malloc attribute have this set on their return value.

Referenced by gimple_body().

#define ERF_RETURN_ARG_MASK   (3)

Call return flags. Mask for the argument number that is returned. Lower two bits of the return flags, encodes argument slots zero to three.

#define ERF_RETURNS_ARG   (1 << 2)

Nonzero if the return value is equal to the argument number flags & ERF_RETURN_ARG_MASK.

#define NUM_TREE_CODES   ((int) LAST_AND_UNUSED_TREE_CODE)

Number of language-independent tree codes.


Typedef Documentation

typedef struct alias_pair alias_pair

When processing aliases at the symbol table level, we need the declaration of target. For this reason we need to queue aliases and process them after all declarations has been produced.

A single element of a CONSTRUCTOR. VALUE holds the actual value of the element. INDEX can optionally design the position of VALUE: in arrays, it is the index where VALUE has to be placed; in structures, it is the FIELD_DECL of the member.

typedef unsigned short priority_type

An initialization priority.

Immediate use linking structure. This structure is used for maintaining a doubly linked list of uses of an SSA_NAME.

typedef tree(* walk_tree_fn)(tree *, int *, void *)

The type of a callback function for walking over tree structure.

typedef tree(* walk_tree_lh)(tree *, int *, tree(*)(tree *, int *, void *), void *, struct pointer_set_t *)

The type of a callback function that represents a custom walk_tree.


Enumeration Type Documentation

Enumerator:
annot_expr_ivdep_kind 

Flags that may be passed in the third argument of decl_attributes, and to handler functions for attributes.

Enumerator:
ATTR_FLAG_DECL_NEXT 

The type passed in is the type of a DECL, and any attributes that should be passed in again to be applied to the DECL rather than the type should be returned.

ATTR_FLAG_FUNCTION_NEXT 

The type passed in is a function return type, and any attributes that should be passed in again to be applied to the function type rather than the return type should be returned.

ATTR_FLAG_ARRAY_NEXT 

The type passed in is an array element type, and any attributes that should be passed in again to be applied to the array type rather than the element type should be returned.

ATTR_FLAG_TYPE_IN_PLACE 

The type passed in is a structure, union or enumeration type being created, and should be modified in place.

ATTR_FLAG_BUILT_IN 

The attributes are being applied by default to a library function whose name indicates known behavior, and should be silently ignored if they are not in fact compatible with the function type.

ATTR_FLAG_CXX11 

A given attribute has been parsed as a C++-11 attribute.

Classify which part of the compiler has defined a given builtin function. Note that we assume below that this is no more than two bits.

Enumerator:
NOT_BUILT_IN 
BUILT_IN_FRONTEND 
BUILT_IN_MD 
BUILT_IN_NORMAL 

There is a TYPE_QUAL value for each type qualifier. They can be combined by bitwise-or to form the complete set of qualifiers for a type.

Enumerator:
TYPE_UNQUALIFIED 
TYPE_QUAL_CONST 
TYPE_QUAL_VOLATILE 
TYPE_QUAL_RESTRICT 

An enumeration of the standard C integer types. These must be ordered so that shorter types appear before longer ones, and so that signed types appear before unsigned ones, for the correct functioning of interpret_integer() in c-lex.c.

Enumerator:
itk_char 
itk_signed_char 
itk_unsigned_char 
itk_short 
itk_unsigned_short 
itk_int 
itk_unsigned_int 
itk_long 
itk_unsigned_long 
itk_long_long 
itk_unsigned_long_long 
itk_int128 
itk_unsigned_int128 
itk_none 

OMP_CLAUSE codes. Do not reorder, as this is used to index into the tables omp_clause_num_ops and omp_clause_code_name.

Enumerator:
OMP_CLAUSE_ERROR 

Clause zero is special-cased inside the parser (c_parser_omp_variable_list).

OMP_CLAUSE_PRIVATE 

OpenMP clause: private (variable_list).

OMP_CLAUSE_SHARED 

OpenMP clause: shared (variable_list).

OMP_CLAUSE_FIRSTPRIVATE 

OpenMP clause: firstprivate (variable_list).

OMP_CLAUSE_LASTPRIVATE 

OpenMP clause: lastprivate (variable_list).

OMP_CLAUSE_REDUCTION 

OpenMP clause: reduction (operator:variable_list). OMP_CLAUSE_REDUCTION_CODE: The tree_code of the operator. Operand 1: OMP_CLAUSE_REDUCTION_INIT: Stmt-list to initialize the var. Operand 2: OMP_CLAUSE_REDUCTION_MERGE: Stmt-list to merge private var into the shared one. Operand 3: OMP_CLAUSE_REDUCTION_PLACEHOLDER: A dummy VAR_DECL placeholder used in OMP_CLAUSE_REDUCTION_{INIT,MERGE}.

OMP_CLAUSE_COPYIN 

OpenMP clause: copyin (variable_list).

OMP_CLAUSE_COPYPRIVATE 

OpenMP clause: copyprivate (variable_list).

OMP_CLAUSE_LINEAR 

OpenMP clause: linear (variable-list[:linear-step]).

OMP_CLAUSE_ALIGNED 

OpenMP clause: aligned (variable-list[:alignment]).

OMP_CLAUSE_DEPEND 

OpenMP clause: depend ({in,out,inout}:variable-list).

OMP_CLAUSE_UNIFORM 

OpenMP clause: uniform (argument-list).

OMP_CLAUSE_FROM 

OpenMP clause: from (variable-list).

OMP_CLAUSE_TO 

OpenMP clause: to (variable-list).

OMP_CLAUSE_MAP 

OpenMP clause: map ({alloc:,to:,from:,tofrom:,}variable-list).

OMP_CLAUSE__LOOPTEMP_ 

Internal clause: temporary for combined loops expansion.

OMP_CLAUSE_IF 

OpenMP clause: if (scalar-expression).

OMP_CLAUSE_NUM_THREADS 

OpenMP clause: num_threads (integer-expression).

OMP_CLAUSE_SCHEDULE 

OpenMP clause: schedule.

OMP_CLAUSE_NOWAIT 

OpenMP clause: nowait.

OMP_CLAUSE_ORDERED 

OpenMP clause: ordered.

OMP_CLAUSE_DEFAULT 

OpenMP clause: default.

OMP_CLAUSE_COLLAPSE 

OpenMP clause: collapse (constant-integer-expression).

OMP_CLAUSE_UNTIED 

OpenMP clause: untied.

OMP_CLAUSE_FINAL 

OpenMP clause: final (scalar-expression).

OMP_CLAUSE_MERGEABLE 

OpenMP clause: mergeable.

OMP_CLAUSE_DEVICE 

OpenMP clause: device (integer-expression).

OMP_CLAUSE_DIST_SCHEDULE 

OpenMP clause: dist_schedule (static[:chunk-size]).

OMP_CLAUSE_INBRANCH 

OpenMP clause: inbranch.

OMP_CLAUSE_NOTINBRANCH 

OpenMP clause: notinbranch.

OMP_CLAUSE_NUM_TEAMS 

OpenMP clause: num_teams(integer-expression).

OMP_CLAUSE_THREAD_LIMIT 

OpenMP clause: thread_limit(integer-expression).

OMP_CLAUSE_PROC_BIND 

OpenMP clause: proc_bind ({master,close,spread}).

OMP_CLAUSE_SAFELEN 

OpenMP clause: safelen (constant-integer-expression).

OMP_CLAUSE_SIMDLEN 

OpenMP clause: simdlen (constant-integer-expression).

OMP_CLAUSE_FOR 

OpenMP clause: for.

OMP_CLAUSE_PARALLEL 

OpenMP clause: parallel.

OMP_CLAUSE_SECTIONS 

OpenMP clause: sections.

OMP_CLAUSE_TASKGROUP 

OpenMP clause: taskgroup.

OMP_CLAUSE__SIMDUID_ 

Internally used only clause, holding SIMD uid.

Enumerator:
OMP_CLAUSE_DEFAULT_UNSPECIFIED 
OMP_CLAUSE_DEFAULT_SHARED 
OMP_CLAUSE_DEFAULT_NONE 
OMP_CLAUSE_DEFAULT_PRIVATE 
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE 
Enumerator:
OMP_CLAUSE_DEPEND_IN 
OMP_CLAUSE_DEPEND_OUT 
OMP_CLAUSE_DEPEND_INOUT 
Enumerator:
OMP_CLAUSE_MAP_ALLOC 
OMP_CLAUSE_MAP_TO 
OMP_CLAUSE_MAP_FROM 
OMP_CLAUSE_MAP_TOFROM 
OMP_CLAUSE_MAP_POINTER 

The following kind is an internal only map kind, used for pointer based array sections. OMP_CLAUSE_SIZE for these is not the pointer size, which is implicitly POINTER_SIZE / BITS_PER_UNIT, but the bias.

Enumerator:
OMP_CLAUSE_PROC_BIND_FALSE 

Numbers should match omp_proc_bind_t enum in omp.h.

OMP_CLAUSE_PROC_BIND_TRUE 
OMP_CLAUSE_PROC_BIND_MASTER 
OMP_CLAUSE_PROC_BIND_CLOSE 
OMP_CLAUSE_PROC_BIND_SPREAD 
Enumerator:
OMP_CLAUSE_SCHEDULE_STATIC 
OMP_CLAUSE_SCHEDULE_DYNAMIC 
OMP_CLAUSE_SCHEDULE_GUIDED 
OMP_CLAUSE_SCHEDULE_AUTO 
OMP_CLAUSE_SCHEDULE_RUNTIME 
Enumerator:
OEP_ONLY_CONST 
OEP_PURE_SAME 
OEP_CONSTANT_ADDRESS_OF 

A pointer-to-function member type looks like:

struct { __P __pfn; ptrdiff_t __delta; };

If __pfn is NULL, it is a NULL pointer-to-member-function.

(Because the vtable is always the first thing in the object, we don't need its offset.) If the function is virtual, then PFN is one plus twice the index into the vtable; otherwise, it is just a pointer to the function.

Unfortunately, using the lowest bit of PFN doesn't work in architectures that don't impose alignment requirements on function addresses, or that use the lowest bit to tell one ISA from another, for example. For such architectures, we use the lowest bit of DELTA instead of the lowest bit of the PFN, and DELTA will be multiplied by 2.

Enumerator:
ptrmemfunc_vbit_in_pfn 
ptrmemfunc_vbit_in_delta 

Types used to represent sizes.

Enumerator:
stk_sizetype 
stk_ssizetype 
stk_bitsizetype 
stk_sbitsizetype 
stk_type_kind_last 
enum tree_code
Enumerator:
MAX_TREE_CODES 

Tree code classes. Each tree_code has an associated code class represented by a TREE_CODE_CLASS.

Enumerator:
tcc_exceptional 
tcc_constant 
tcc_type 

Order of tcc_type and tcc_declaration is important.

tcc_declaration 
tcc_reference 
tcc_comparison 
tcc_unary 
tcc_binary 
tcc_statement 
tcc_vl_exp 
tcc_expression 
enum tree_index

Enumerate visibility settings. Standard named or nameless data types of the C compiler.

Enumerator:
TI_ERROR_MARK 
TI_INTQI_TYPE 
TI_INTHI_TYPE 
TI_INTSI_TYPE 
TI_INTDI_TYPE 
TI_INTTI_TYPE 
TI_UINTQI_TYPE 
TI_UINTHI_TYPE 
TI_UINTSI_TYPE 
TI_UINTDI_TYPE 
TI_UINTTI_TYPE 
TI_UINT16_TYPE 
TI_UINT32_TYPE 
TI_UINT64_TYPE 
TI_INTEGER_ZERO 
TI_INTEGER_ONE 
TI_INTEGER_THREE 
TI_INTEGER_MINUS_ONE 
TI_NULL_POINTER 
TI_SIZE_ZERO 
TI_SIZE_ONE 
TI_BITSIZE_ZERO 
TI_BITSIZE_ONE 
TI_BITSIZE_UNIT 
TI_PUBLIC 
TI_PROTECTED 
TI_PRIVATE 
TI_BOOLEAN_FALSE 
TI_BOOLEAN_TRUE 
TI_COMPLEX_INTEGER_TYPE 
TI_COMPLEX_FLOAT_TYPE 
TI_COMPLEX_DOUBLE_TYPE 
TI_COMPLEX_LONG_DOUBLE_TYPE 
TI_FLOAT_TYPE 
TI_DOUBLE_TYPE 
TI_LONG_DOUBLE_TYPE 
TI_FLOAT_PTR_TYPE 
TI_DOUBLE_PTR_TYPE 
TI_LONG_DOUBLE_PTR_TYPE 
TI_INTEGER_PTR_TYPE 
TI_VOID_TYPE 
TI_PTR_TYPE 
TI_CONST_PTR_TYPE 
TI_SIZE_TYPE 
TI_PID_TYPE 
TI_PTRDIFF_TYPE 
TI_VA_LIST_TYPE 
TI_VA_LIST_GPR_COUNTER_FIELD 
TI_VA_LIST_FPR_COUNTER_FIELD 
TI_BOOLEAN_TYPE 
TI_FILEPTR_TYPE 
TI_POINTER_SIZED_TYPE 
TI_POINTER_BOUNDS_TYPE 
TI_DFLOAT32_TYPE 
TI_DFLOAT64_TYPE 
TI_DFLOAT128_TYPE 
TI_DFLOAT32_PTR_TYPE 
TI_DFLOAT64_PTR_TYPE 
TI_DFLOAT128_PTR_TYPE 
TI_VOID_LIST_NODE 
TI_MAIN_IDENTIFIER 
TI_SAT_SFRACT_TYPE 
TI_SAT_FRACT_TYPE 
TI_SAT_LFRACT_TYPE 
TI_SAT_LLFRACT_TYPE 
TI_SAT_USFRACT_TYPE 
TI_SAT_UFRACT_TYPE 
TI_SAT_ULFRACT_TYPE 
TI_SAT_ULLFRACT_TYPE 
TI_SFRACT_TYPE 
TI_FRACT_TYPE 
TI_LFRACT_TYPE 
TI_LLFRACT_TYPE 
TI_USFRACT_TYPE 
TI_UFRACT_TYPE 
TI_ULFRACT_TYPE 
TI_ULLFRACT_TYPE 
TI_SAT_SACCUM_TYPE 
TI_SAT_ACCUM_TYPE 
TI_SAT_LACCUM_TYPE 
TI_SAT_LLACCUM_TYPE 
TI_SAT_USACCUM_TYPE 
TI_SAT_UACCUM_TYPE 
TI_SAT_ULACCUM_TYPE 
TI_SAT_ULLACCUM_TYPE 
TI_SACCUM_TYPE 
TI_ACCUM_TYPE 
TI_LACCUM_TYPE 
TI_LLACCUM_TYPE 
TI_USACCUM_TYPE 
TI_UACCUM_TYPE 
TI_ULACCUM_TYPE 
TI_ULLACCUM_TYPE 
TI_QQ_TYPE 
TI_HQ_TYPE 
TI_SQ_TYPE 
TI_DQ_TYPE 
TI_TQ_TYPE 
TI_UQQ_TYPE 
TI_UHQ_TYPE 
TI_USQ_TYPE 
TI_UDQ_TYPE 
TI_UTQ_TYPE 
TI_SAT_QQ_TYPE 
TI_SAT_HQ_TYPE 
TI_SAT_SQ_TYPE 
TI_SAT_DQ_TYPE 
TI_SAT_TQ_TYPE 
TI_SAT_UQQ_TYPE 
TI_SAT_UHQ_TYPE 
TI_SAT_USQ_TYPE 
TI_SAT_UDQ_TYPE 
TI_SAT_UTQ_TYPE 
TI_HA_TYPE 
TI_SA_TYPE 
TI_DA_TYPE 
TI_TA_TYPE 
TI_UHA_TYPE 
TI_USA_TYPE 
TI_UDA_TYPE 
TI_UTA_TYPE 
TI_SAT_HA_TYPE 
TI_SAT_SA_TYPE 
TI_SAT_DA_TYPE 
TI_SAT_TA_TYPE 
TI_SAT_UHA_TYPE 
TI_SAT_USA_TYPE 
TI_SAT_UDA_TYPE 
TI_SAT_UTA_TYPE 
TI_OPTIMIZATION_DEFAULT 
TI_OPTIMIZATION_CURRENT 
TI_TARGET_OPTION_DEFAULT 
TI_TARGET_OPTION_CURRENT 
TI_CURRENT_TARGET_PRAGMA 
TI_CURRENT_OPTIMIZE_PRAGMA 
TI_MAX 

Enum and arrays used for tree allocation stats. Keep in sync with tree.c:tree_node_kind_names.

Enumerator:
d_kind 
t_kind 
b_kind 
s_kind 
r_kind 
e_kind 
c_kind 
id_kind 
vec_kind 
binfo_kind 
ssa_name_kind 
constr_kind 
x_kind 
lang_decl 
lang_type 
omp_clause_kind 
all_kinds 
Enumerator:
LAST_TS_ENUM 

This file contains the definitions for the tree structure enumeration used in GCC.

Copyright (C) 2005-2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/. The format of this file is

DEFTREESTRUCT(enumeration value, printable name).

Each enumeration value should correspond with a single member of union tree_node.

These enumerator values are used in order to distinguish members of union tree_node for garbage collection purposes, as well as specifying what structures contain what other structures in the tree_contains_struct array.