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) \
145#define OMP_TSS_ID(NODE) \ …
147#define OMP_TSS_TRAIT_SELECTORS(NODE) \
147#define OMP_TSS_TRAIT_SELECTORS(NODE) \ …
149#define OMP_TS_ID(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)
151#define OMP_TS_SCORE(NODE) \ …
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))
156#define OMP_TS_PROPERTIES(NODE) \ …
161#define OMP_TP_NAME(NODE) \
161#define OMP_TP_NAME(NODE) \ …
163#define OMP_TP_VALUE(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)))
166#define OMP_TSS_CODE(t) \ …
168#define OMP_TSS_NAME(t) \
169 (omp_tss_map[OMP_TSS_CODE (t)])
168#define OMP_TSS_NAME(t) \ …
171#define OMP_TS_CODE(t) \
172 ((enum omp_ts_code) TREE_INT_CST_LOW (OMP_TS_ID (t)))
171#define OMP_TS_CODE(t) \ …
173#define OMP_TS_NAME(t) \
174 (omp_ts_map[OMP_TS_CODE (t)].name)
173#define OMP_TS_NAME(t) \ …
296 return a.type ==
b.type;
300 return a.name ==
b.name &&
a.type ==
b.type;
365enum structure_base_kinds
365enum 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:560
static struct token T
Definition gengtype-parse.cc:45
tree_code
Definition genmatch.cc:1002
Definition omp-general.cc:4035
structure_base_kinds
Definition omp-general.h:366
@ BASE_ARBITRARY_EXPR
Definition omp-general.h:369
@ BASE_COMPONENT_EXPR
Definition omp-general.h:368
@ BASE_DECL
Definition omp-general.h:367
access_method_kinds
Definition omp-general.h:351
@ ACCESS_REF_TO_POINTER
Definition omp-general.h:355
@ ACCESS_POINTER_OFFSET
Definition omp-general.h:356
@ ACCESS_DIRECT
Definition omp-general.h:352
@ ACCESS_INDEXED_REF_TO_ARRAY
Definition omp-general.h:359
@ ACCESS_REF_TO_POINTER_OFFSET
Definition omp-general.h:357
@ ACCESS_POINTER
Definition omp-general.h:354
@ ACCESS_REF
Definition omp-general.h:353
@ ACCESS_INDEXED_ARRAY
Definition omp-general.h:358
bool omp_access_chain_p(vec< omp_addr_token * > &addr_tokens, unsigned i)
Definition omp-general.cc:4334
tree omp_accessed_addr(vec< omp_addr_token * > &addr_tokens, unsigned i, tree expr)
Definition omp-general.cc:4346
token_type
Definition omp-general.h:377
@ STRUCTURE_BASE
Definition omp-general.h:379
@ ARRAY_BASE
Definition omp-general.h:378
@ COMPONENT_SELECTOR
Definition omp-general.h:380
@ ACCESS_METHOD
Definition omp-general.h:381
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:3099
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:3853
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:3769
vec< struct omp_variant > omp_resolve_variant_construct(tree, tree)
Definition omp-general.cc:3475
tree oacc_replace_fn_attrib_attr(tree attribs, tree dims)
Definition omp-general.cc:3532
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:3819
omp_addr_tokenizer::omp_addr_token omp_addr_token
Definition omp-general.h:408
tree omp_loop_number_of_iterations(tree, int, tree *=NULL)
Definition omp-general.cc:4458
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:3546
void omp_maybe_apply_loop_xforms(tree *, tree)
Definition omp-general.cc:4772
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:3429
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:3838
tree omp_dynamic_cond(tree, tree)
Definition omp-general.cc:2722
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:3498
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:3606
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:3557
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:3381
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:3807
vec< struct omp_variant > omp_early_resolve_metadirective(tree)
Definition omp-general.cc:3463
tree oacc_get_fn_attrib(tree fn)
Definition omp-general.cc:3799
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:4357
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
Ca const poly_int< N, Cb > & b
Definition poly-int.h:771
Ca & a
Definition poly-int.h:770
Definition genautomata.cc:499
static bool is_deleted(omp_name_type< tree >)
Definition omp-general.h:287
static const bool empty_zero_p
Definition omp-general.h:278
omp_name_type< tree > compare_type
Definition omp-general.h:269
static bool is_empty(omp_name_type< tree > p)
Definition omp-general.h:281
static void mark_empty(omp_name_type< tree > &e)
Definition omp-general.h:304
omp_name_type< tree > value_type
Definition omp-general.h:268
static bool equal(const omp_name_type< tree > &a, const omp_name_type< tree > &b)
Definition omp-general.h:293
static hashval_t hash(omp_name_type< tree > p)
Definition omp-general.h:272
Definition hash-traits.h:466
Definition omp-general.h:388
omp_addr_token(token_type, tree)
Definition omp-general.cc:4086
tree expr
Definition omp-general.h:390
union omp_addr_tokenizer::omp_addr_token::@074161226327301316022247300110220316174056265170 u
structure_base_kinds structure_base_kind
Definition omp-general.h:395
enum token_type type
Definition omp-general.h:389
access_method_kinds access_kind
Definition omp-general.h:394
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
bool contains(tree name, T type)
Definition omp-general.h:334
vec< tree > * mappers
Definition omp-general.h:314
omp_mapper_list(hash_set< omp_name_type< T > > *s, vec< tree > *m)
Definition omp-general.h:316
hash_set< omp_name_type< T > > * seen_types
Definition omp-general.h:313
void add_mapper(tree name, T type, tree mapperfn)
Definition omp-general.h:319
Definition omp-general.h:259
tree type
Definition omp-general.h:261
tree name
Definition omp-general.h:260
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
Definition hash-traits.h:75
#define NULL
Definition system.h:50
omp_clause_code
Definition tree-core.h:250
omp_clause_schedule_kind
Definition tree-core.h:604
hashval_t iterative_hash_expr(const_tree tree, hashval_t seed)
Definition tree.h:5782
#define void_node
Definition tree.h:4521
#define NULL_TREE
Definition tree.h:317
#define TYPE_UID(NODE)
Definition tree.h:2315