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)
198 bool metadirective_p);
275enum 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:992
Definition omp-general.cc:3997
structure_base_kinds
Definition omp-general.h:276
@ BASE_ARBITRARY_EXPR
Definition omp-general.h:279
@ BASE_COMPONENT_EXPR
Definition omp-general.h:278
@ BASE_DECL
Definition omp-general.h:277
access_method_kinds
Definition omp-general.h:261
@ ACCESS_REF_TO_POINTER
Definition omp-general.h:265
@ ACCESS_POINTER_OFFSET
Definition omp-general.h:266
@ ACCESS_DIRECT
Definition omp-general.h:262
@ ACCESS_INDEXED_REF_TO_ARRAY
Definition omp-general.h:269
@ ACCESS_REF_TO_POINTER_OFFSET
Definition omp-general.h:267
@ ACCESS_POINTER
Definition omp-general.h:264
@ ACCESS_REF
Definition omp-general.h:263
@ ACCESS_INDEXED_ARRAY
Definition omp-general.h:268
bool omp_access_chain_p(vec< omp_addr_token * > &addr_tokens, unsigned i)
Definition omp-general.cc:4298
tree omp_accessed_addr(vec< omp_addr_token * > &addr_tokens, unsigned i, tree expr)
Definition omp-general.cc:4310
token_type
Definition omp-general.h:287
@ STRUCTURE_BASE
Definition omp-general.h:289
@ ARRAY_BASE
Definition omp-general.h:288
@ COMPONENT_SELECTOR
Definition omp-general.h:290
@ ACCESS_METHOD
Definition omp-general.h:291
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:3061
tree omp_find_clause(tree clauses, enum omp_clause_code kind)
Definition omp-general.cc:52
tree omp_build_component_ref(tree obj, tree field)
Definition omp-general.cc:3815
gimple * omp_build_barrier(tree lhs)
Definition omp-general.cc:923
bool omp_is_allocatable_or_ptr(tree decl)
Definition omp-general.cc:64
tree omp_check_context_selector(location_t loc, tree ctx, bool metadirective_p)
Definition omp-general.cc:1305
void omp_mark_declare_variant(location_t loc, tree variant, tree construct)
Definition omp-general.cc:1501
tree oacc_build_routine_dims(tree clauses)
Definition omp-general.cc:3731
vec< struct omp_variant > omp_resolve_variant_construct(tree, tree)
Definition omp-general.cc:3437
tree oacc_replace_fn_attrib_attr(tree attribs, tree dims)
Definition omp-general.cc:3494
bool omp_privatize_by_reference(tree decl)
Definition omp-general.cc:98
int omp_context_selector_matches(tree, tree, bool)
Definition omp-general.cc:1670
int oacc_get_fn_dim_size(tree fn, int axis)
Definition omp-general.cc:3781
omp_addr_tokenizer::omp_addr_token omp_addr_token
Definition omp-general.h:318
tree omp_loop_number_of_iterations(tree, int, tree *=NULL)
Definition omp-general.cc:4423
tree make_trait_set_selector(enum omp_tss_code, tree, tree)
Definition omp-general.cc:1533
bool omp_mappable_type(tree type)
Definition omp-general.cc:86
tree make_trait_property(tree, tree, tree)
Definition omp-general.cc:1553
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:3508
void omp_maybe_apply_loop_xforms(tree *, tree)
Definition omp-general.cc:4737
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:3391
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:3800
tree omp_dynamic_cond(tree, tree)
Definition omp-general.cc:2684
tree omp_get_context_selector_list(tree, enum omp_tss_code)
Definition omp-general.cc:2567
tree make_trait_selector(enum omp_ts_code, tree, tree, tree)
Definition omp-general.cc:1540
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:3460
dump_flags_t get_openacc_privatization_dump_flags()
Definition omp-general.h:239
omp_requires
Definition omp-general.h:225
@ OMP_REQUIRES_REVERSE_OFFLOAD
Definition omp-general.h:230
@ OMP_REQUIRES_DYNAMIC_ALLOCATORS
Definition omp-general.h:229
@ OMP_REQUIRES_UNIFIED_ADDRESS
Definition omp-general.h:227
@ OMP_REQUIRES_ATOMIC_DEFAULT_MEM_ORDER_USED
Definition omp-general.h:231
@ OMP_REQUIRES_UNIFIED_SHARED_MEMORY
Definition omp-general.h:228
@ OMP_REQUIRES_SELF_MAPS
Definition omp-general.h:233
@ OMP_REQUIRES_TARGET_USED
Definition omp-general.h:232
@ OMP_REQUIRES_ATOMIC_DEFAULT_MEM_ORDER
Definition omp-general.h:226
int oacc_verify_routine_clauses(tree, tree *, location_t, const char *)
Definition omp-general.cc:3568
tree omp_get_context_selector(tree, enum omp_tss_code, enum omp_ts_code)
Definition omp-general.cc:2554
void oacc_set_fn_attrib(tree fn, tree clauses, vec< tree > *args)
Definition omp-general.cc:3519
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:3343
tree resolve_omp_target_device_matches(tree node)
Definition omp-general.cc:2172
const char * omp_context_name_list_prop(tree)
Definition omp-general.cc:1264
bool offloading_function_p(tree fn)
Definition omp-general.cc:3769
vec< struct omp_variant > omp_early_resolve_metadirective(tree)
Definition omp-general.cc:3425
tree oacc_get_fn_attrib(tree fn)
Definition omp-general.cc:3761
tree make_omp_metadirective_variant(tree, tree, tree)
Definition omp-general.cc:1560
bool omp_parse_expr(vec< omp_addr_token * > &, tree)
Definition omp-general.cc:4321
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:298
omp_addr_token(token_type, tree)
Definition omp-general.cc:4048
tree expr
Definition omp-general.h:300
union omp_addr_tokenizer::omp_addr_token::@074161226327301316022247300110220316174056265170 u
structure_base_kinds structure_base_kind
Definition omp-general.h:305
enum token_type type
Definition omp-general.h:299
access_method_kinds access_kind
Definition omp-general.h:304
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