GCC Middle and Back End API Reference
tree-core.h File Reference
#include "symtab.h"
#include "all-tree.def"
#include "builtins.def"
#include "internal-fn.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_poly_int_cst
 
struct  tree_identifier
 
struct  tree_list
 
struct  tree_vec
 
struct  constructor_elt
 
struct  tree_constructor
 
struct  tree_exp
 
struct  ssa_use_operand_t
 

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_RET1   (1 << 11)
 
#define ECF_TM_PURE   (1 << 12)
 
#define ECF_TM_BUILTIN   (1 << 13)
 
#define ECF_BY_DESCRIPTOR   (1 << 14)
 
#define ECF_COLD   (1 << 15)
 
#define ECF_XTHROW   (1 << 16)
 
#define EAF_UNUSED   (1 << 1)
 
#define EAF_NO_DIRECT_CLOBBER   (1 << 2)
 
#define EAF_NO_INDIRECT_CLOBBER   (1 << 3)
 
#define EAF_NO_DIRECT_ESCAPE   (1 << 4)
 
#define EAF_NO_INDIRECT_ESCAPE   (1 << 5)
 
#define EAF_NOT_RETURNED_DIRECTLY   (1 << 6)
 
#define EAF_NOT_RETURNED_INDIRECTLY   (1 << 7)
 
#define EAF_NO_DIRECT_READ   (1 << 8)
 
#define EAF_NO_INDIRECT_READ   (1 << 9)
 
#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 DEF_INTERNAL_FN(CODE, FLAGS, FNSPEC)   IFN_##CODE,
 
#define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND)    CFN_##ENUM = int (ENUM),
 
#define DEF_INTERNAL_FN(CODE, FLAGS, FNSPEC)    CFN_##CODE = int (END_BUILTINS) + int (IFN_##CODE),
 
#define DEFTREESTRUCT(ENUM, NAME)   ENUM,
 
#define OMP_FAIL_MEMORY_ORDER_SHIFT   3
 
#define NUM_FLOATN_TYPES   (TI_FLOATN_TYPE_LAST - TI_FLOATN_TYPE_FIRST + 1)
 
#define NUM_FLOATNX_TYPES   (TI_FLOATNX_TYPE_LAST - TI_FLOATNX_TYPE_FIRST + 1)
 
#define NUM_FLOATN_NX_TYPES
 

Typedefs

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 *, hash_set< tree > *)
 

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 {
  BUILT_IN_COMPLEX_MUL_MIN , BUILT_IN_COMPLEX_MUL_MAX , BUILT_IN_COMPLEX_DIV_MIN , BUILT_IN_COMPLEX_DIV_MAX ,
  END_BUILTINS
}
 
enum  internal_fn { IFN_LAST }
 
enum  combined_fn { CFN_LAST }
 
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_TASK_REDUCTION , OMP_CLAUSE_IN_REDUCTION ,
  OMP_CLAUSE_COPYIN , OMP_CLAUSE_COPYPRIVATE , OMP_CLAUSE_LINEAR , OMP_CLAUSE_AFFINITY ,
  OMP_CLAUSE_ALIGNED , OMP_CLAUSE_ALLOCATE , OMP_CLAUSE_DEPEND , OMP_CLAUSE_NONTEMPORAL ,
  OMP_CLAUSE_UNIFORM , OMP_CLAUSE_ENTER , OMP_CLAUSE_LINK , OMP_CLAUSE_DETACH ,
  OMP_CLAUSE_USE_DEVICE_PTR , OMP_CLAUSE_USE_DEVICE_ADDR , OMP_CLAUSE_IS_DEVICE_PTR , OMP_CLAUSE_INCLUSIVE ,
  OMP_CLAUSE_EXCLUSIVE , OMP_CLAUSE_FROM , OMP_CLAUSE_TO , OMP_CLAUSE_MAP ,
  OMP_CLAUSE_HAS_DEVICE_ADDR , OMP_CLAUSE_DOACROSS , OMP_CLAUSE__CACHE_ , OMP_CLAUSE_GANG ,
  OMP_CLAUSE_ASYNC , OMP_CLAUSE_WAIT , OMP_CLAUSE_AUTO , OMP_CLAUSE_SEQ ,
  OMP_CLAUSE__LOOPTEMP_ , OMP_CLAUSE__REDUCTEMP_ , OMP_CLAUSE__CONDTEMP_ , OMP_CLAUSE__SCANTEMP_ ,
  OMP_CLAUSE_IF , OMP_CLAUSE_SELF , 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_DEVICE_TYPE , OMP_CLAUSE_FOR , OMP_CLAUSE_PARALLEL , OMP_CLAUSE_SECTIONS ,
  OMP_CLAUSE_TASKGROUP , OMP_CLAUSE_PRIORITY , OMP_CLAUSE_GRAINSIZE , OMP_CLAUSE_NUM_TASKS ,
  OMP_CLAUSE_NOGROUP , OMP_CLAUSE_THREADS , OMP_CLAUSE_SIMD , OMP_CLAUSE_HINT ,
  OMP_CLAUSE_DEFAULTMAP , OMP_CLAUSE_ORDER , OMP_CLAUSE_BIND , OMP_CLAUSE_FILTER ,
  OMP_CLAUSE_INDIRECT , OMP_CLAUSE__SIMDUID_ , OMP_CLAUSE__SIMT_ , OMP_CLAUSE_INDEPENDENT ,
  OMP_CLAUSE_WORKER , OMP_CLAUSE_VECTOR , OMP_CLAUSE_NUM_GANGS , OMP_CLAUSE_NUM_WORKERS ,
  OMP_CLAUSE_VECTOR_LENGTH , OMP_CLAUSE_TILE , OMP_CLAUSE_IF_PRESENT , OMP_CLAUSE_FINALIZE ,
  OMP_CLAUSE_NOHOST
}
 
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 , OMP_CLAUSE_SCHEDULE_MASK = (1 << 3) - 1 , OMP_CLAUSE_SCHEDULE_MONOTONIC = (1 << 3) , OMP_CLAUSE_SCHEDULE_NONMONOTONIC = (1 << 4) ,
  OMP_CLAUSE_SCHEDULE_LAST = 2 * OMP_CLAUSE_SCHEDULE_NONMONOTONIC - 1
}
 
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 , OMP_CLAUSE_DEFAULT_PRESENT , OMP_CLAUSE_DEFAULT_LAST
}
 
enum  omp_clause_defaultmap_kind {
  OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED , OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL , OMP_CLAUSE_DEFAULTMAP_CATEGORY_SCALAR , OMP_CLAUSE_DEFAULTMAP_CATEGORY_AGGREGATE ,
  OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALLOCATABLE , OMP_CLAUSE_DEFAULTMAP_CATEGORY_POINTER , OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK = 7 , OMP_CLAUSE_DEFAULTMAP_ALLOC = 1 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) ,
  OMP_CLAUSE_DEFAULTMAP_TO = 2 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) , OMP_CLAUSE_DEFAULTMAP_FROM = 3 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) , OMP_CLAUSE_DEFAULTMAP_TOFROM = 4 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) , OMP_CLAUSE_DEFAULTMAP_FIRSTPRIVATE = 5 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) ,
  OMP_CLAUSE_DEFAULTMAP_NONE = 6 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) , OMP_CLAUSE_DEFAULTMAP_DEFAULT = 7 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) , OMP_CLAUSE_DEFAULTMAP_PRESENT = 8 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1) , OMP_CLAUSE_DEFAULTMAP_MASK = 15 * (OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK + 1)
}
 
enum  omp_clause_bind_kind { OMP_CLAUSE_BIND_TEAMS , OMP_CLAUSE_BIND_PARALLEL , OMP_CLAUSE_BIND_THREAD }
 
enum  omp_memory_order {
  OMP_MEMORY_ORDER_UNSPECIFIED , OMP_MEMORY_ORDER_RELAXED , OMP_MEMORY_ORDER_ACQUIRE , OMP_MEMORY_ORDER_RELEASE ,
  OMP_MEMORY_ORDER_ACQ_REL , OMP_MEMORY_ORDER_SEQ_CST , OMP_MEMORY_ORDER_MASK = 7 , OMP_FAIL_MEMORY_ORDER_UNSPECIFIED = OMP_MEMORY_ORDER_UNSPECIFIED * 8 ,
  OMP_FAIL_MEMORY_ORDER_RELAXED = OMP_MEMORY_ORDER_RELAXED * 8 , OMP_FAIL_MEMORY_ORDER_ACQUIRE = OMP_MEMORY_ORDER_ACQUIRE * 8 , OMP_FAIL_MEMORY_ORDER_RELEASE = OMP_MEMORY_ORDER_RELEASE * 8 , OMP_FAIL_MEMORY_ORDER_ACQ_REL = OMP_MEMORY_ORDER_ACQ_REL * 8 ,
  OMP_FAIL_MEMORY_ORDER_SEQ_CST = OMP_MEMORY_ORDER_SEQ_CST * 8 , OMP_FAIL_MEMORY_ORDER_MASK = OMP_MEMORY_ORDER_MASK * 8
}
 
enum  cv_qualifier {
  TYPE_UNQUALIFIED = 0x0 , TYPE_QUAL_CONST = 0x1 , TYPE_QUAL_VOLATILE = 0x2 , TYPE_QUAL_RESTRICT = 0x4 ,
  TYPE_QUAL_ATOMIC = 0x8
}
 
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_ATOMICQI_TYPE ,
  TI_ATOMICHI_TYPE , TI_ATOMICSI_TYPE , TI_ATOMICDI_TYPE , TI_ATOMICTI_TYPE ,
  TI_UINT16_TYPE , TI_UINT32_TYPE , TI_UINT64_TYPE , TI_UINT128_TYPE ,
  TI_VOID , 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_FLOAT_TYPE , TI_DOUBLE_TYPE , TI_LONG_DOUBLE_TYPE , TI_BFLOAT16_TYPE ,
  TI_FLOAT16_TYPE , TI_FLOATN_TYPE_FIRST = TI_FLOAT16_TYPE , TI_FLOATN_NX_TYPE_FIRST = TI_FLOAT16_TYPE , TI_FLOAT32_TYPE ,
  TI_FLOAT64_TYPE , TI_FLOAT128_TYPE , TI_FLOATN_TYPE_LAST = TI_FLOAT128_TYPE , TI_FLOAT32X_TYPE ,
  TI_FLOATNX_TYPE_FIRST = TI_FLOAT32X_TYPE , TI_FLOAT64X_TYPE , TI_FLOAT128X_TYPE , TI_FLOATNX_TYPE_LAST = TI_FLOAT128X_TYPE ,
  TI_FLOATN_NX_TYPE_LAST = TI_FLOAT128X_TYPE , TI_FLOAT128T_TYPE , TI_COMPLEX_INTEGER_TYPE , TI_COMPLEX_FLOAT_TYPE ,
  TI_COMPLEX_DOUBLE_TYPE , TI_COMPLEX_LONG_DOUBLE_TYPE , TI_COMPLEX_FLOAT16_TYPE , TI_COMPLEX_FLOATN_NX_TYPE_FIRST = TI_COMPLEX_FLOAT16_TYPE ,
  TI_COMPLEX_FLOAT32_TYPE , TI_COMPLEX_FLOAT64_TYPE , TI_COMPLEX_FLOAT128_TYPE , TI_COMPLEX_FLOAT32X_TYPE ,
  TI_COMPLEX_FLOAT64X_TYPE , TI_COMPLEX_FLOAT128X_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_CONST_TM_PTR_TYPE , TI_FENV_T_PTR_TYPE , TI_CONST_FENV_T_PTR_TYPE ,
  TI_FEXCEPT_T_PTR_TYPE , TI_CONST_FEXCEPT_T_PTR_TYPE , TI_POINTER_SIZED_TYPE , TI_DFLOAT32_TYPE ,
  TI_DFLOAT64_TYPE , TI_DFLOAT128_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_MODULE_HWM , TI_OPTIMIZATION_DEFAULT , TI_OPTIMIZATION_CURRENT , TI_TARGET_OPTION_DEFAULT ,
  TI_TARGET_OPTION_CURRENT , TI_CURRENT_TARGET_PRAGMA , TI_CURRENT_OPTIMIZE_PRAGMA , TI_CHREC_DONT_KNOW ,
  TI_CHREC_KNOWN , 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_intN_0 ,
  itk_unsigned_intN_0 , itk_intN_1 , itk_unsigned_intN_1 , itk_intN_2 ,
  itk_unsigned_intN_2 , itk_intN_3 , itk_unsigned_intN_3 , 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 , ATTR_FLAG_INTERNAL = 64
}
 
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_MATCH_SIDE_EFFECTS = 4 , OEP_ADDRESS_OF = 8 ,
  OEP_NO_HASH_CHECK = 16 , OEP_HASH_CHECK = 32 , OEP_LEXICOGRAPHIC = 64 , OEP_BITWISE = 128 ,
  OEP_ADDRESS_OF_SAME_FIELD = 256 , OEP_DECL_NAME = 512
}
 
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 , annot_expr_unroll_kind , annot_expr_no_vector_kind , annot_expr_vector_kind ,
  annot_expr_parallel_kind , annot_expr_maybe_infinite_kind , annot_expr_kind_last
}
 
enum  clobber_kind {
  CLOBBER_UNDEF , CLOBBER_STORAGE_BEGIN , CLOBBER_OBJECT_BEGIN , CLOBBER_OBJECT_END ,
  CLOBBER_STORAGE_END , CLOBBER_LAST
}
 
enum  omp_clause_depend_kind {
  OMP_CLAUSE_DEPEND_IN , OMP_CLAUSE_DEPEND_OUT , OMP_CLAUSE_DEPEND_INOUT , OMP_CLAUSE_DEPEND_MUTEXINOUTSET ,
  OMP_CLAUSE_DEPEND_INOUTSET , OMP_CLAUSE_DEPEND_DEPOBJ , OMP_CLAUSE_DEPEND_INVALID , OMP_CLAUSE_DEPEND_LAST
}
 
enum  omp_clause_doacross_kind { OMP_CLAUSE_DOACROSS_SOURCE , OMP_CLAUSE_DOACROSS_SINK , OMP_CLAUSE_DOACROSS_LAST }
 
enum  omp_clause_proc_bind_kind {
  OMP_CLAUSE_PROC_BIND_FALSE = 0 , OMP_CLAUSE_PROC_BIND_TRUE = 1 , OMP_CLAUSE_PROC_BIND_PRIMARY = 2 , OMP_CLAUSE_PROC_BIND_MASTER = 2 ,
  OMP_CLAUSE_PROC_BIND_CLOSE = 3 , OMP_CLAUSE_PROC_BIND_SPREAD = 4 , OMP_CLAUSE_PROC_BIND_LAST
}
 
enum  omp_clause_device_type_kind { OMP_CLAUSE_DEVICE_TYPE_HOST = 1 , OMP_CLAUSE_DEVICE_TYPE_NOHOST = 2 , OMP_CLAUSE_DEVICE_TYPE_ANY = 3 }
 
enum  omp_clause_linear_kind { OMP_CLAUSE_LINEAR_DEFAULT , OMP_CLAUSE_LINEAR_REF , OMP_CLAUSE_LINEAR_VAL , OMP_CLAUSE_LINEAR_UVAL }
 

Macro Definition Documentation

◆ BUILT_IN_LAST

#define BUILT_IN_LAST   (BUILT_IN_NORMAL + 1)
Last marker used for LTO stremaing of built_in_class.  We cannot add it
to the enum since we need the enumb to fit in 2 bits.   

Referenced by maybe_warn_pass_by_reference(), pack_ts_function_decl_value_fields(), and unpack_ts_function_decl_value_fields().

◆ CODE_CONTAINS_STRUCT

◆ DEF_BUILTIN [1/2]

#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.   

◆ DEF_BUILTIN [2/2]

#define DEF_BUILTIN ( ENUM,
N,
C,
T,
LT,
B,
F,
NA,
AT,
IM,
COND )    CFN_##ENUM = int (ENUM),
Codes that identify the various built in functions
so that expand_call can identify them quickly.   

◆ DEF_INTERNAL_FN [1/2]

#define DEF_INTERNAL_FN ( CODE,
FLAGS,
FNSPEC )   IFN_##CODE,

◆ DEF_INTERNAL_FN [2/2]

#define DEF_INTERNAL_FN ( CODE,
FLAGS,
FNSPEC )    CFN_##CODE = int (END_BUILTINS) + int (IFN_##CODE),

◆ DEFTREECODE

#define DEFTREECODE ( SYM,
STRING,
TYPE,
NARGS )   SYM,
Codes of tree nodes.   

◆ DEFTREESTRUCT

#define DEFTREESTRUCT ( ENUM,
NAME )   ENUM,

◆ EAF_NO_DIRECT_CLOBBER

#define EAF_NO_DIRECT_CLOBBER   (1 << 2)
Following flags come in pairs.  First one is about direct dereferences
from the parameter, while the second is about memory reachable by
recursive dereferences.   
Nonzero if memory reached by the argument is not clobbered.   

Referenced by attr_fnspec::arg_eaf_flags(), handle_call_arg(), interposable_eaf_flags(), and sra_modify_call_arg().

◆ EAF_NO_DIRECT_ESCAPE

#define EAF_NO_DIRECT_ESCAPE   (1 << 4)
Nonzero if the argument does not escape.   

Referenced by attr_fnspec::arg_eaf_flags(), handle_call_arg(), handle_rhs_call(), and interposable_eaf_flags().

◆ EAF_NO_DIRECT_READ

#define EAF_NO_DIRECT_READ   (1 << 8)

◆ EAF_NO_INDIRECT_CLOBBER

#define EAF_NO_INDIRECT_CLOBBER   (1 << 3)

◆ EAF_NO_INDIRECT_ESCAPE

#define EAF_NO_INDIRECT_ESCAPE   (1 << 5)

◆ EAF_NO_INDIRECT_READ

#define EAF_NO_INDIRECT_READ   (1 << 9)

◆ EAF_NOT_RETURNED_DIRECTLY

#define EAF_NOT_RETURNED_DIRECTLY   (1 << 6)
Nonzero if the argument does not escape to return value.   

Referenced by handle_call_arg(), handle_rhs_call(), interposable_eaf_flags(), remove_useless_eaf_flags(), and scan_function().

◆ EAF_NOT_RETURNED_INDIRECTLY

#define EAF_NOT_RETURNED_INDIRECTLY   (1 << 7)

◆ EAF_UNUSED

#define EAF_UNUSED   (1 << 1)

◆ ECF_BY_DESCRIPTOR

#define ECF_BY_DESCRIPTOR   (1 << 14)
Nonzero if this is an indirect call by descriptor.   

Referenced by call_expr_flags(), expand_call(), gimple_call_flags(), and prepare_call_address().

◆ ECF_COLD

#define ECF_COLD   (1 << 15)
Nonzero if this is a cold function.   

Referenced by build_common_builtin_nodes(), flags_from_decl_or_type(), and set_call_expr_flags().

◆ ECF_CONST

#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 auto_simd_check_stmt(), build_common_builtin_nodes(), call_may_clobber_ref_p_1(), check_stmt_for_type_change(), cleanup_call_ctrl_altering_flag(), compute_avail(), compute_points_to_sets(), decl_maybe_in_construction_p(), dse_optimize_call(), emit_call_1(), emit_library_call_value_1(), execute_fixup_cfg(), expand_builtin(), expand_call(), expr_hash_elt::expr_hash_elt(), find_always_executed_bbs(), find_func_aliases_for_call(), find_obviously_necessary_stmts(), finite_loop_p(), flags_from_decl_or_type(), ccp_folder::fold_stmt(), function_and_variable_visibility(), gather_memory_references(), get_read_write_all_from_node(), get_references_in_stmt(), gimple_call_reset_alias_info(), gimple_has_side_effects(), gimple_regimplify_operands(), gimplify_call_expr(), gsi_replace_with_seq_vops(), if_convertible_stmt_p(), initialize_argument_information(), input_edge(), ipa_merge_modref_summary_after_inlining(), ipa_pta_execute(), is_removable_cxa_atexit_call(), is_tm_pure_call(), lto_output_edge(), operands_scanner::maybe_add_call_vops(), maybe_push_res_to_seq(), maybe_warn_pass_by_reference(), nonbarrier_call_p(), operand_compare::operand_equal_p(), param_type_may_change_p(), polymorphic_ctor_dtor_p(), process_call_operands(), propagate(), propagate_bits(), pure_const_read_summary(), read_write_all_from_decl(), ref_maybe_used_by_call_p_1(), remove_useless_eaf_flags(), set_call_expr_flags(), should_duplicate_loop_header_p(), speculation_useful_p(), state_from_flags(), statement_sink_location(), stmt_can_terminate_bb_p(), stmt_may_terminate_function_p(), tree_estimate_loop_size(), modref_summary_lto::useful_p(), modref_summary::useful_p(), vect_finish_stmt_generation(), visit_reference_op_call(), visit_stmt(), and will_be_nonconstant_predicate().

◆ ECF_LEAF

◆ ECF_LOOPING_CONST_OR_PURE

◆ ECF_MALLOC

◆ ECF_MAY_BE_ALLOCA

#define ECF_MAY_BE_ALLOCA   (1 << 5)
Nonzero if it is plausible that this is a call to alloca.   

Referenced by expand_call(), gimple_maybe_alloca_call_p(), lto_output_edge(), notice_special_calls(), special_function_p(), and store_one_arg().

◆ ECF_NORETURN

◆ ECF_NOTHROW

◆ ECF_NOVOPS

◆ ECF_PURE

#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 auto_simd_check_stmt(), build_common_builtin_nodes(), call_may_clobber_ref_p_1(), check_stmt_for_type_change(), cleanup_call_ctrl_altering_flag(), compute_avail(), compute_points_to_sets(), decl_maybe_in_construction_p(), dse_optimize_call(), emit_call_1(), emit_library_call_value_1(), execute_fixup_cfg(), expand_builtin(), expand_call(), expr_hash_elt::expr_hash_elt(), find_always_executed_bbs(), find_func_aliases_for_call(), find_obviously_necessary_stmts(), finite_loop_p(), flags_from_decl_or_type(), ccp_folder::fold_stmt(), function_and_variable_visibility(), get_read_write_all_from_node(), gimple_call_reset_alias_info(), gimple_has_side_effects(), gimple_regimplify_operands(), gimplify_call_expr(), gsi_replace_with_seq_vops(), initialize_argument_information(), input_edge(), ipa_merge_modref_summary_after_inlining(), ipa_pta_execute(), is_removable_cxa_atexit_call(), lto_output_edge(), operands_scanner::maybe_add_call_vops(), nonbarrier_call_p(), operand_compare::operand_equal_p(), param_type_may_change_p(), polymorphic_ctor_dtor_p(), process_call_operands(), propagate(), propagate_bits(), pure_const_read_summary(), read_write_all_from_decl(), remove_useless_eaf_flags(), set_call_expr_flags(), speculation_useful_p(), state_from_flags(), statement_sink_location(), stmt_can_terminate_bb_p(), stmt_may_terminate_function_p(), tree_estimate_loop_size(), modref_summary_lto::useful_p(), modref_summary::useful_p(), vect_finish_stmt_generation(), visit_reference_op_call(), and visit_stmt().

◆ ECF_RET1

#define ECF_RET1   (1 << 11)
Nonzero if this call returns its first argument.   

Referenced by set_call_expr_flags().

◆ ECF_RETURNS_TWICE

◆ ECF_SIBCALL

#define ECF_SIBCALL   (1 << 8)
Nonzero if this call replaces the current stack frame.   

Referenced by emit_call_1(), expand_call(), load_register_parameters(), lto_output_edge(), prepare_call_address(), and store_one_arg().

◆ ECF_TM_BUILTIN

#define ECF_TM_BUILTIN   (1 << 13)

◆ ECF_TM_PURE

#define ECF_TM_PURE   (1 << 12)

◆ ECF_XTHROW

#define ECF_XTHROW   (1 << 16)

◆ END_OF_BASE_TREE_CODES

#define END_OF_BASE_TREE_CODES   LAST_AND_UNUSED_TREE_CODE,

◆ ERF_NOALIAS

#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 decl_return_flags(), find_func_aliases_for_builtin_call(), gimple_call_return_flags(), handle_lhs_call(), and visit_stmt().

◆ ERF_RETURN_ARG_MASK

#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.   

Referenced by decompose_param_expr(), evaluate_stmt(), expand_call(), gimple_call_nonnull_arg(), handle_lhs_call(), and pass_through_call().

◆ ERF_RETURNS_ARG

#define ERF_RETURNS_ARG   (1 << 2)
Nonzero if the return value is equal to the argument number
flags & ERF_RETURN_ARG_MASK.   

Referenced by decl_return_flags(), decompose_param_expr(), evaluate_stmt(), expand_call(), gimple_call_nonnull_arg(), gimple_call_return_flags(), handle_lhs_call(), and pass_through_call().

◆ NUM_FLOATN_NX_TYPES

#define NUM_FLOATN_NX_TYPES
Value:
+ 1)
@ TI_FLOATN_NX_TYPE_FIRST
Definition tree-core.h:689
@ TI_FLOATN_NX_TYPE_LAST
Definition tree-core.h:700

Referenced by build_common_tree_nodes(), and long_double_as_float128().

◆ NUM_FLOATN_TYPES

#define NUM_FLOATN_TYPES   (TI_FLOATN_TYPE_LAST - TI_FLOATN_TYPE_FIRST + 1)

◆ NUM_FLOATNX_TYPES

#define NUM_FLOATNX_TYPES   (TI_FLOATNX_TYPE_LAST - TI_FLOATNX_TYPE_FIRST + 1)

◆ NUM_TREE_CODES

#define NUM_TREE_CODES    ((int) LAST_AND_UNUSED_TREE_CODE)
Number of language-independent tree codes.   

Referenced by is_lang_specific(), maybe_lvalue_p(), print_lto_report(), and tree_code_size().

◆ OMP_FAIL_MEMORY_ORDER_SHIFT

#define OMP_FAIL_MEMORY_ORDER_SHIFT   3

Typedef Documentation

◆ priority_type

An initialization priority.   

◆ walk_tree_fn

typedef tree(* walk_tree_fn) (tree *, int *, void *)
The type of a callback function for walking over tree structure.   

◆ walk_tree_lh

typedef tree(* walk_tree_lh) (tree *, int *, tree(*)(tree *, int *, void *), void *, hash_set< tree > *)
The type of a callback function that represents a custom walk_tree.   

Enumeration Type Documentation

◆ annot_expr_kind

Enumerator
annot_expr_ivdep_kind 
annot_expr_unroll_kind 
annot_expr_no_vector_kind 
annot_expr_vector_kind 
annot_expr_parallel_kind 
annot_expr_maybe_infinite_kind 
annot_expr_kind_last 

◆ attribute_flags

Flags that may be passed in the third argument of decl_attributes, and
to handler functions for attributes.   
Enumerator
ATTR_FLAG_DECL_NEXT 
ATTR_FLAG_FUNCTION_NEXT 
ATTR_FLAG_ARRAY_NEXT 
ATTR_FLAG_TYPE_IN_PLACE 
ATTR_FLAG_BUILT_IN 
ATTR_FLAG_CXX11 
ATTR_FLAG_INTERNAL 

◆ built_in_class

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 

◆ built_in_function

Enumerator
BUILT_IN_COMPLEX_MUL_MIN 
BUILT_IN_COMPLEX_MUL_MAX 
BUILT_IN_COMPLEX_DIV_MIN 
BUILT_IN_COMPLEX_DIV_MAX 
END_BUILTINS 

◆ clobber_kind

The kind of a TREE_CLOBBER_P CONSTRUCTOR node.  Other than _UNDEF, these are
in roughly sequential order.   
Enumerator
CLOBBER_UNDEF 
CLOBBER_STORAGE_BEGIN 
CLOBBER_OBJECT_BEGIN 
CLOBBER_OBJECT_END 
CLOBBER_STORAGE_END 
CLOBBER_LAST 

◆ combined_fn

An enum that combines target-independent built-in functions with
internal functions, so that they can be treated in a similar way.
The numbers for built-in functions are the same as for the
built_in_function enum.  The numbers for internal functions
start at END_BUITLINS.   
Enumerator
CFN_LAST 

◆ cv_qualifier

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 
TYPE_QUAL_ATOMIC 

◆ integer_type_kind

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.cc.   
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_intN_0 
itk_unsigned_intN_0 
itk_intN_1 
itk_unsigned_intN_1 
itk_intN_2 
itk_unsigned_intN_2 
itk_intN_3 
itk_unsigned_intN_3 
itk_none 

◆ internal_fn

Internal functions.   
Enumerator
IFN_LAST 

◆ omp_clause_bind_kind

Enumerator
OMP_CLAUSE_BIND_TEAMS 
OMP_CLAUSE_BIND_PARALLEL 
OMP_CLAUSE_BIND_THREAD 

◆ omp_clause_code

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 
OMP_CLAUSE_PRIVATE 
OMP_CLAUSE_SHARED 
OMP_CLAUSE_FIRSTPRIVATE 
OMP_CLAUSE_LASTPRIVATE 
OMP_CLAUSE_REDUCTION 
OMP_CLAUSE_TASK_REDUCTION 
OMP_CLAUSE_IN_REDUCTION 
OMP_CLAUSE_COPYIN 
OMP_CLAUSE_COPYPRIVATE 
OMP_CLAUSE_LINEAR 
OMP_CLAUSE_AFFINITY 
OMP_CLAUSE_ALIGNED 
OMP_CLAUSE_ALLOCATE 
OMP_CLAUSE_DEPEND 
OMP_CLAUSE_NONTEMPORAL 
OMP_CLAUSE_UNIFORM 
OMP_CLAUSE_ENTER 
OMP_CLAUSE_LINK 
OMP_CLAUSE_DETACH 
OMP_CLAUSE_USE_DEVICE_PTR 
OMP_CLAUSE_USE_DEVICE_ADDR 
OMP_CLAUSE_IS_DEVICE_PTR 
OMP_CLAUSE_INCLUSIVE 
OMP_CLAUSE_EXCLUSIVE 
OMP_CLAUSE_FROM 
OMP_CLAUSE_TO 
OMP_CLAUSE_MAP 
OMP_CLAUSE_HAS_DEVICE_ADDR 
OMP_CLAUSE_DOACROSS 
OMP_CLAUSE__CACHE_ 
OMP_CLAUSE_GANG 
OMP_CLAUSE_ASYNC 
OMP_CLAUSE_WAIT 
OMP_CLAUSE_AUTO 
OMP_CLAUSE_SEQ 
OMP_CLAUSE__LOOPTEMP_ 
OMP_CLAUSE__REDUCTEMP_ 
OMP_CLAUSE__CONDTEMP_ 
OMP_CLAUSE__SCANTEMP_ 
OMP_CLAUSE_IF 
OMP_CLAUSE_SELF 
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_DEVICE_TYPE 
OMP_CLAUSE_FOR 
OMP_CLAUSE_PARALLEL 
OMP_CLAUSE_SECTIONS 
OMP_CLAUSE_TASKGROUP 
OMP_CLAUSE_PRIORITY 
OMP_CLAUSE_GRAINSIZE 
OMP_CLAUSE_NUM_TASKS 
OMP_CLAUSE_NOGROUP 
OMP_CLAUSE_THREADS 
OMP_CLAUSE_SIMD 
OMP_CLAUSE_HINT 
OMP_CLAUSE_DEFAULTMAP 
OMP_CLAUSE_ORDER 
OMP_CLAUSE_BIND 
OMP_CLAUSE_FILTER 
OMP_CLAUSE_INDIRECT 
OMP_CLAUSE__SIMDUID_ 
OMP_CLAUSE__SIMT_ 
OMP_CLAUSE_INDEPENDENT 
OMP_CLAUSE_WORKER 
OMP_CLAUSE_VECTOR 
OMP_CLAUSE_NUM_GANGS 
OMP_CLAUSE_NUM_WORKERS 
OMP_CLAUSE_VECTOR_LENGTH 
OMP_CLAUSE_TILE 
OMP_CLAUSE_IF_PRESENT 
OMP_CLAUSE_FINALIZE 
OMP_CLAUSE_NOHOST 

◆ omp_clause_default_kind

Enumerator
OMP_CLAUSE_DEFAULT_UNSPECIFIED 
OMP_CLAUSE_DEFAULT_SHARED 
OMP_CLAUSE_DEFAULT_NONE 
OMP_CLAUSE_DEFAULT_PRIVATE 
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE 
OMP_CLAUSE_DEFAULT_PRESENT 
OMP_CLAUSE_DEFAULT_LAST 

◆ omp_clause_defaultmap_kind

Enumerator
OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED 
OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL 
OMP_CLAUSE_DEFAULTMAP_CATEGORY_SCALAR 
OMP_CLAUSE_DEFAULTMAP_CATEGORY_AGGREGATE 
OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALLOCATABLE 
OMP_CLAUSE_DEFAULTMAP_CATEGORY_POINTER 
OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK 
OMP_CLAUSE_DEFAULTMAP_ALLOC 
OMP_CLAUSE_DEFAULTMAP_TO 
OMP_CLAUSE_DEFAULTMAP_FROM 
OMP_CLAUSE_DEFAULTMAP_TOFROM 
OMP_CLAUSE_DEFAULTMAP_FIRSTPRIVATE 
OMP_CLAUSE_DEFAULTMAP_NONE 
OMP_CLAUSE_DEFAULTMAP_DEFAULT 
OMP_CLAUSE_DEFAULTMAP_PRESENT 
OMP_CLAUSE_DEFAULTMAP_MASK 

◆ omp_clause_depend_kind

Enumerator
OMP_CLAUSE_DEPEND_IN 
OMP_CLAUSE_DEPEND_OUT 
OMP_CLAUSE_DEPEND_INOUT 
OMP_CLAUSE_DEPEND_MUTEXINOUTSET 
OMP_CLAUSE_DEPEND_INOUTSET 
OMP_CLAUSE_DEPEND_DEPOBJ 
OMP_CLAUSE_DEPEND_INVALID 
OMP_CLAUSE_DEPEND_LAST 

◆ omp_clause_device_type_kind

Enumerator
OMP_CLAUSE_DEVICE_TYPE_HOST 
OMP_CLAUSE_DEVICE_TYPE_NOHOST 
OMP_CLAUSE_DEVICE_TYPE_ANY 

◆ omp_clause_doacross_kind

Enumerator
OMP_CLAUSE_DOACROSS_SOURCE 
OMP_CLAUSE_DOACROSS_SINK 
OMP_CLAUSE_DOACROSS_LAST 

◆ omp_clause_linear_kind

Enumerator
OMP_CLAUSE_LINEAR_DEFAULT 
OMP_CLAUSE_LINEAR_REF 
OMP_CLAUSE_LINEAR_VAL 
OMP_CLAUSE_LINEAR_UVAL 

◆ omp_clause_proc_bind_kind

Enumerator
OMP_CLAUSE_PROC_BIND_FALSE 
OMP_CLAUSE_PROC_BIND_TRUE 
OMP_CLAUSE_PROC_BIND_PRIMARY 
OMP_CLAUSE_PROC_BIND_MASTER 
OMP_CLAUSE_PROC_BIND_CLOSE 
OMP_CLAUSE_PROC_BIND_SPREAD 
OMP_CLAUSE_PROC_BIND_LAST 

◆ omp_clause_schedule_kind

Enumerator
OMP_CLAUSE_SCHEDULE_STATIC 
OMP_CLAUSE_SCHEDULE_DYNAMIC 
OMP_CLAUSE_SCHEDULE_GUIDED 
OMP_CLAUSE_SCHEDULE_AUTO 
OMP_CLAUSE_SCHEDULE_RUNTIME 
OMP_CLAUSE_SCHEDULE_MASK 
OMP_CLAUSE_SCHEDULE_MONOTONIC 
OMP_CLAUSE_SCHEDULE_NONMONOTONIC 
OMP_CLAUSE_SCHEDULE_LAST 

◆ omp_memory_order

memory-order-clause on OpenMP atomic/flush constructs or
argument of atomic_default_mem_order clause.   
Enumerator
OMP_MEMORY_ORDER_UNSPECIFIED 
OMP_MEMORY_ORDER_RELAXED 
OMP_MEMORY_ORDER_ACQUIRE 
OMP_MEMORY_ORDER_RELEASE 
OMP_MEMORY_ORDER_ACQ_REL 
OMP_MEMORY_ORDER_SEQ_CST 
OMP_MEMORY_ORDER_MASK 
OMP_FAIL_MEMORY_ORDER_UNSPECIFIED 
OMP_FAIL_MEMORY_ORDER_RELAXED 
OMP_FAIL_MEMORY_ORDER_ACQUIRE 
OMP_FAIL_MEMORY_ORDER_RELEASE 
OMP_FAIL_MEMORY_ORDER_ACQ_REL 
OMP_FAIL_MEMORY_ORDER_SEQ_CST 
OMP_FAIL_MEMORY_ORDER_MASK 

◆ operand_equal_flag

Flags controlling operand_equal_p() behavior.   
Enumerator
OEP_ONLY_CONST 
OEP_PURE_SAME 
OEP_MATCH_SIDE_EFFECTS 
OEP_ADDRESS_OF 
OEP_NO_HASH_CHECK 
OEP_HASH_CHECK 
OEP_LEXICOGRAPHIC 
OEP_BITWISE 
OEP_ADDRESS_OF_SAME_FIELD 
OEP_DECL_NAME 

◆ ptrmemfunc_vbit_where_t

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 

◆ size_type_kind

Types used to represent sizes.   
Enumerator
stk_sizetype 
stk_ssizetype 
stk_bitsizetype 
stk_sbitsizetype 
stk_type_kind_last 

◆ tree_code

Enumerator
MAX_TREE_CODES 

◆ tree_code_class

Tree code classes.  Each tree_code has an associated code class
represented by a TREE_CODE_CLASS.   
Enumerator
tcc_exceptional 
tcc_constant 
tcc_type 
tcc_declaration 
tcc_reference 
tcc_comparison 
tcc_unary 
tcc_binary 
tcc_statement 
tcc_vl_exp 
tcc_expression 

◆ tree_index

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_ATOMICQI_TYPE 
TI_ATOMICHI_TYPE 
TI_ATOMICSI_TYPE 
TI_ATOMICDI_TYPE 
TI_ATOMICTI_TYPE 
TI_UINT16_TYPE 
TI_UINT32_TYPE 
TI_UINT64_TYPE 
TI_UINT128_TYPE 
TI_VOID 
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_FLOAT_TYPE 
TI_DOUBLE_TYPE 
TI_LONG_DOUBLE_TYPE 
TI_BFLOAT16_TYPE 
TI_FLOAT16_TYPE 
TI_FLOATN_TYPE_FIRST 
TI_FLOATN_NX_TYPE_FIRST 
TI_FLOAT32_TYPE 
TI_FLOAT64_TYPE 
TI_FLOAT128_TYPE 
TI_FLOATN_TYPE_LAST 
TI_FLOAT32X_TYPE 
TI_FLOATNX_TYPE_FIRST 
TI_FLOAT64X_TYPE 
TI_FLOAT128X_TYPE 
TI_FLOATNX_TYPE_LAST 
TI_FLOATN_NX_TYPE_LAST 
TI_FLOAT128T_TYPE 
TI_COMPLEX_INTEGER_TYPE 
TI_COMPLEX_FLOAT_TYPE 
TI_COMPLEX_DOUBLE_TYPE 
TI_COMPLEX_LONG_DOUBLE_TYPE 
TI_COMPLEX_FLOAT16_TYPE 
TI_COMPLEX_FLOATN_NX_TYPE_FIRST 
TI_COMPLEX_FLOAT32_TYPE 
TI_COMPLEX_FLOAT64_TYPE 
TI_COMPLEX_FLOAT128_TYPE 
TI_COMPLEX_FLOAT32X_TYPE 
TI_COMPLEX_FLOAT64X_TYPE 
TI_COMPLEX_FLOAT128X_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_CONST_TM_PTR_TYPE 
TI_FENV_T_PTR_TYPE 
TI_CONST_FENV_T_PTR_TYPE 
TI_FEXCEPT_T_PTR_TYPE 
TI_CONST_FEXCEPT_T_PTR_TYPE 
TI_POINTER_SIZED_TYPE 
TI_DFLOAT32_TYPE 
TI_DFLOAT64_TYPE 
TI_DFLOAT128_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_MODULE_HWM 
TI_OPTIMIZATION_DEFAULT 
TI_OPTIMIZATION_CURRENT 
TI_TARGET_OPTION_DEFAULT 
TI_TARGET_OPTION_CURRENT 
TI_CURRENT_TARGET_PRAGMA 
TI_CURRENT_OPTIMIZE_PRAGMA 
TI_CHREC_DONT_KNOW 
TI_CHREC_KNOWN 
TI_MAX 

◆ tree_node_kind

Enum and arrays used for tree allocation stats.
Keep in sync with tree.cc: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 

◆ tree_node_structure_enum

Enumerator
LAST_TS_ENUM