22#ifndef GCC_OMP_GENERAL_H
23#define GCC_OMP_GENERAL_H
25#include "gomp-constants.h"
121#define OACC_FN_ATTRIB "oacc function"
142#define OMP_TS_SCORE_NODE integer_minus_one_node
143#define OMP_TP_NAMELIST_NODE integer_one_node
145#define OMP_TSS_ID(NODE) \
147#define OMP_TSS_TRAIT_SELECTORS(NODE) \
149#define OMP_TS_ID(NODE) \
151#define OMP_TS_SCORE(NODE) \
152 ((TREE_VALUE (NODE) \
153 && TREE_CODE (TREE_VALUE (NODE)) == TREE_LIST \
154 && TREE_PURPOSE (TREE_VALUE (NODE)) == OMP_TS_SCORE_NODE) \
155 ? TREE_VALUE (TREE_VALUE (NODE)) : NULL_TREE)
156#define OMP_TS_PROPERTIES(NODE) \
157 ((TREE_VALUE (NODE) \
158 && TREE_CODE (TREE_VALUE (NODE)) == TREE_LIST \
159 && TREE_PURPOSE (TREE_VALUE (NODE)) == OMP_TS_SCORE_NODE) \
160 ? TREE_CHAIN (TREE_VALUE (NODE)) : TREE_VALUE (NODE))
161#define OMP_TP_NAME(NODE) \
163#define OMP_TP_VALUE(NODE) \
166#define OMP_TSS_CODE(t) \
167 ((enum omp_tss_code) TREE_INT_CST_LOW (OMP_TSS_ID (t)))
168#define OMP_TSS_NAME(t) \
169 (omp_tss_map[OMP_TSS_CODE (t)])
171#define OMP_TS_CODE(t) \
172 ((enum omp_ts_code) TREE_INT_CST_LOW (OMP_TS_ID (t)))
173#define OMP_TS_NAME(t) \
174 (omp_ts_map[OMP_TS_CODE (t)].name)
279enum structure_base_kinds
#define GTY(x)
Definition coretypes.h:41
union tree_node * tree
Definition coretypes.h:97
@ MSG_PRIORITY_INTERNALS
Definition dumpfile.h:181
@ MSG_NOTE
Definition dumpfile.h:159
enum dump_flag dump_flags_t
Definition dumpfile.h:209
@ OPENACC_PRIVATIZATION_QUIET
Definition flag-types.h:553
tree_code
Definition genmatch.cc:1002
Definition omp-general.cc:4029
structure_base_kinds
Definition omp-general.h:280
@ BASE_ARBITRARY_EXPR
Definition omp-general.h:283
@ BASE_COMPONENT_EXPR
Definition omp-general.h:282
@ BASE_DECL
Definition omp-general.h:281
access_method_kinds
Definition omp-general.h:265
@ ACCESS_REF_TO_POINTER
Definition omp-general.h:269
@ ACCESS_POINTER_OFFSET
Definition omp-general.h:270
@ ACCESS_DIRECT
Definition omp-general.h:266
@ ACCESS_INDEXED_REF_TO_ARRAY
Definition omp-general.h:273
@ ACCESS_REF_TO_POINTER_OFFSET
Definition omp-general.h:271
@ ACCESS_POINTER
Definition omp-general.h:268
@ ACCESS_REF
Definition omp-general.h:267
@ ACCESS_INDEXED_ARRAY
Definition omp-general.h:272
bool omp_access_chain_p(vec< omp_addr_token * > &addr_tokens, unsigned i)
Definition omp-general.cc:4328
tree omp_accessed_addr(vec< omp_addr_token * > &addr_tokens, unsigned i, tree expr)
Definition omp-general.cc:4340
token_type
Definition omp-general.h:291
@ STRUCTURE_BASE
Definition omp-general.h:293
@ ARRAY_BASE
Definition omp-general.h:292
@ COMPONENT_SELECTOR
Definition omp-general.h:294
@ ACCESS_METHOD
Definition omp-general.h:295
enum omp_requires omp_requires_mask
Definition omp-general.cc:48
vec< struct omp_variant > omp_get_dynamic_candidates(vec< struct omp_variant > &, tree)
Definition omp-general.cc:3093
tree omp_find_clause(tree clauses, enum omp_clause_code kind)
Definition omp-general.cc:52
omp_ctx_directive
Definition omp-general.h:198
@ OMP_CTX_METADIRECTIVE
Definition omp-general.h:200
@ OMP_CTX_BEGIN_DECLARE_VARIANT
Definition omp-general.h:199
@ OMP_CTX_DECLARE_VARIANT
Definition omp-general.h:198
tree omp_build_component_ref(tree obj, tree field)
Definition omp-general.cc:3847
gimple * omp_build_barrier(tree lhs)
Definition omp-general.cc:923
bool omp_is_allocatable_or_ptr(tree decl)
Definition omp-general.cc:64
void omp_mark_declare_variant(location_t loc, tree variant, tree construct)
Definition omp-general.cc:1513
tree oacc_build_routine_dims(tree clauses)
Definition omp-general.cc:3763
vec< struct omp_variant > omp_resolve_variant_construct(tree, tree)
Definition omp-general.cc:3469
tree oacc_replace_fn_attrib_attr(tree attribs, tree dims)
Definition omp-general.cc:3526
tree omp_check_context_selector(location_t loc, tree ctx, enum omp_ctx_directive directive)
Definition omp-general.cc:1305
bool omp_privatize_by_reference(tree decl)
Definition omp-general.cc:98
int omp_context_selector_matches(tree, tree, bool)
Definition omp-general.cc:1682
int oacc_get_fn_dim_size(tree fn, int axis)
Definition omp-general.cc:3813
omp_addr_tokenizer::omp_addr_token omp_addr_token
Definition omp-general.h:322
tree omp_loop_number_of_iterations(tree, int, tree *=NULL)
Definition omp-general.cc:4452
tree make_trait_set_selector(enum omp_tss_code, tree, tree)
Definition omp-general.cc:1545
bool omp_mappable_type(tree type)
Definition omp-general.cc:86
tree make_trait_property(tree, tree, tree)
Definition omp-general.cc:1565
void omp_extract_for_data(gomp_for *for_stmt, struct omp_for_data *fd, struct omp_for_data_loop *loops)
Definition omp-general.cc:206
void oacc_replace_fn_attrib(tree fn, tree dims)
Definition omp-general.cc:3540
void omp_maybe_apply_loop_xforms(tree *, tree)
Definition omp-general.cc:4766
generic_wide_int< fixed_wide_int_storage< 1024 > > score_wide_int
Definition omp-general.h:96
vec< struct omp_variant > omp_metadirective_candidates(tree, tree)
Definition omp-general.cc:3423
tree omp_check_optional_argument(tree decl, bool for_present_check)
Definition omp-general.cc:78
tree find_combined_omp_for(tree *, int *, void *)
Definition omp-general.cc:940
int oacc_get_ifn_dim_arg(const gimple *stmt)
Definition omp-general.cc:3832
tree omp_dynamic_cond(tree, tree)
Definition omp-general.cc:2716
tree omp_get_context_selector_list(tree, enum omp_tss_code)
Definition omp-general.cc:2599
tree make_trait_selector(enum omp_ts_code, tree, tree, tree)
Definition omp-general.cc:1552
oacc_loop_flags
Definition omp-general.h:31
@ OLF_AUTO
Definition omp-general.h:33
@ OLF_DIM_VECTOR
Definition omp-general.h:43
@ OLF_DIM_GANG
Definition omp-general.h:41
@ OLF_REDUCTION
Definition omp-general.h:37
@ OLF_SEQ
Definition omp-general.h:32
@ OLF_TILE
Definition omp-general.h:36
@ OLF_GANG_STATIC
Definition omp-general.h:35
@ OLF_MAX
Definition omp-general.h:45
@ OLF_DIM_BASE
Definition omp-general.h:40
@ OLF_INDEPENDENT
Definition omp-general.h:34
@ OLF_DIM_WORKER
Definition omp-general.h:42
int omp_max_simt_vf(void)
Definition omp-general.cc:1037
tree oacc_launch_pack(unsigned code, tree device, unsigned op)
Definition omp-general.cc:3492
dump_flags_t get_openacc_privatization_dump_flags()
Definition omp-general.h:243
omp_requires
Definition omp-general.h:229
@ OMP_REQUIRES_REVERSE_OFFLOAD
Definition omp-general.h:234
@ OMP_REQUIRES_DYNAMIC_ALLOCATORS
Definition omp-general.h:233
@ OMP_REQUIRES_UNIFIED_ADDRESS
Definition omp-general.h:231
@ OMP_REQUIRES_ATOMIC_DEFAULT_MEM_ORDER_USED
Definition omp-general.h:235
@ OMP_REQUIRES_UNIFIED_SHARED_MEMORY
Definition omp-general.h:232
@ OMP_REQUIRES_SELF_MAPS
Definition omp-general.h:237
@ OMP_REQUIRES_TARGET_USED
Definition omp-general.h:236
@ OMP_REQUIRES_ATOMIC_DEFAULT_MEM_ORDER
Definition omp-general.h:230
int oacc_verify_routine_clauses(tree, tree *, location_t, const char *)
Definition omp-general.cc:3600
tree omp_get_context_selector(tree, enum omp_tss_code, enum omp_ts_code)
Definition omp-general.cc:2586
void oacc_set_fn_attrib(tree fn, tree clauses, vec< tree > *args)
Definition omp-general.cc:3551
tree omp_get_for_step_from_incr(location_t loc, tree incr)
Definition omp-general.cc:181
void omp_adjust_for_condition(location_t loc, enum tree_code *cond_code, tree *n2, tree v, tree step)
Definition omp-general.cc:107
vec< struct omp_variant > omp_declare_variant_candidates(tree, tree)
Definition omp-general.cc:3375
tree resolve_omp_target_device_matches(tree node)
Definition omp-general.cc:2184
const char * omp_context_name_list_prop(tree)
Definition omp-general.cc:1264
bool offloading_function_p(tree fn)
Definition omp-general.cc:3801
vec< struct omp_variant > omp_early_resolve_metadirective(tree)
Definition omp-general.cc:3457
tree oacc_get_fn_attrib(tree fn)
Definition omp-general.cc:3793
tree make_omp_metadirective_variant(tree, tree, tree)
Definition omp-general.cc:1572
bool omp_parse_expr(vec< omp_addr_token * > &, tree)
Definition omp-general.cc:4351
poly_uint64 omp_max_vf(bool)
Definition omp-general.cc:993
omp_tss_code
Definition omp-selectors.h:28
omp_ts_code
Definition omp-selectors.h:39
poly_int< NUM_POLY_INT_COEFFS, unsigned HOST_WIDE_INT > poly_uint64
Definition poly-int-types.h:25
Definition genautomata.cc:499
Definition omp-general.h:302
omp_addr_token(token_type, tree)
Definition omp-general.cc:4080
tree expr
Definition omp-general.h:304
union omp_addr_tokenizer::omp_addr_token::@074161226327301316022247300110220316174056265170 u
structure_base_kinds structure_base_kind
Definition omp-general.h:309
enum token_type type
Definition omp-general.h:303
access_method_kinds access_kind
Definition omp-general.h:308
Definition omp-general.h:58
tree n1
Definition omp-general.h:59
tree m2
Definition omp-general.h:59
tree v
Definition omp-general.h:59
tree m1
Definition omp-general.h:59
enum tree_code cond_code
Definition omp-general.h:60
tree step
Definition omp-general.h:59
tree n2
Definition omp-general.h:59
int outer
Definition omp-general.h:61
bool non_rect_referenced
Definition omp-general.h:62
Definition omp-general.h:68
bool have_pointer_condtemp
Definition omp-general.h:78
int collapse
Definition omp-general.h:74
bool non_rect
Definition omp-general.h:79
int lastprivate_conditional
Definition omp-general.h:80
struct omp_for_data_loop loop
Definition omp-general.h:69
gomp_for * for_stmt
Definition omp-general.h:71
bool simd_schedule
Definition omp-general.h:77
int last_nonrect
Definition omp-general.h:76
bool have_nonctrl_scantemp
Definition omp-general.h:78
tree chunk_size
Definition omp-general.h:70
struct omp_for_data_loop * loops
Definition omp-general.h:83
tree first_inner_iterations
Definition omp-general.h:86
int first_nonrect
Definition omp-general.h:76
bool have_nowait
Definition omp-general.h:77
int ordered
Definition omp-general.h:75
bool have_reductemp
Definition omp-general.h:77
tree tiling
Definition omp-general.h:73
tree pre
Definition omp-general.h:72
bool have_ordered
Definition omp-general.h:77
bool have_scantemp
Definition omp-general.h:78
tree adjn1
Definition omp-general.h:91
tree factor
Definition omp-general.h:89
tree iter_type
Definition omp-general.h:72
enum omp_clause_schedule_kind sched_kind
Definition omp-general.h:82
unsigned char sched_modifiers
Definition omp-general.h:81
Definition omp-general.h:101
tree body
Definition omp-general.h:110
bool dynamic_selector
Definition omp-general.h:114
tree selector
Definition omp-general.h:103
score_wide_int score
Definition omp-general.h:112
bool matchable
Definition omp-general.h:116
bool scorable
Definition omp-general.h:118
tree alternative
Definition omp-general.h:108
Definition gengtype.h:252
#define NULL
Definition system.h:50
omp_clause_code
Definition tree-core.h:250
omp_clause_schedule_kind
Definition tree-core.h:600