22#ifndef GCC_OMP_GENERAL_H
23#define GCC_OMP_GENERAL_H
25#include "gomp-constants.h"
94#define OACC_FN_ATTRIB "oacc function"
115#define OMP_TS_SCORE_NODE integer_minus_one_node
116#define OMP_TP_NAMELIST_NODE integer_one_node
118#define OMP_TSS_ID(NODE) \
120#define OMP_TSS_TRAIT_SELECTORS(NODE) \
122#define OMP_TS_ID(NODE) \
124#define OMP_TS_SCORE(NODE) \
125 ((TREE_VALUE (NODE) \
126 && TREE_CODE (TREE_VALUE (NODE)) == TREE_LIST \
127 && TREE_PURPOSE (TREE_VALUE (NODE)) == OMP_TS_SCORE_NODE) \
128 ? TREE_VALUE (TREE_VALUE (NODE)) : NULL_TREE)
129#define OMP_TS_PROPERTIES(NODE) \
130 ((TREE_VALUE (NODE) \
131 && TREE_CODE (TREE_VALUE (NODE)) == TREE_LIST \
132 && TREE_PURPOSE (TREE_VALUE (NODE)) == OMP_TS_SCORE_NODE) \
133 ? TREE_CHAIN (TREE_VALUE (NODE)) : TREE_VALUE (NODE))
134#define OMP_TP_NAME(NODE) \
136#define OMP_TP_VALUE(NODE) \
139#define OMP_TSS_CODE(t) \
140 ((enum omp_tss_code) TREE_INT_CST_LOW (OMP_TSS_ID (t)))
141#define OMP_TSS_NAME(t) \
142 (omp_tss_map[OMP_TSS_CODE (t)])
144#define OMP_TS_CODE(t) \
145 ((enum omp_ts_code) TREE_INT_CST_LOW (OMP_TS_ID (t)))
146#define OMP_TS_NAME(t) \
147 (omp_ts_map[OMP_TS_CODE (t)].name)
240enum 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:546
tree_code
Definition genmatch.cc:347
Definition omp-general.cc:3503
structure_base_kinds
Definition omp-general.h:241
@ BASE_ARBITRARY_EXPR
Definition omp-general.h:244
@ BASE_COMPONENT_EXPR
Definition omp-general.h:243
@ BASE_DECL
Definition omp-general.h:242
access_method_kinds
Definition omp-general.h:226
@ ACCESS_REF_TO_POINTER
Definition omp-general.h:230
@ ACCESS_POINTER_OFFSET
Definition omp-general.h:231
@ ACCESS_DIRECT
Definition omp-general.h:227
@ ACCESS_INDEXED_REF_TO_ARRAY
Definition omp-general.h:234
@ ACCESS_REF_TO_POINTER_OFFSET
Definition omp-general.h:232
@ ACCESS_POINTER
Definition omp-general.h:229
@ ACCESS_REF
Definition omp-general.h:228
@ ACCESS_INDEXED_ARRAY
Definition omp-general.h:233
bool omp_access_chain_p(vec< omp_addr_token * > &addr_tokens, unsigned i)
Definition omp-general.cc:3804
tree omp_accessed_addr(vec< omp_addr_token * > &addr_tokens, unsigned i, tree expr)
Definition omp-general.cc:3816
token_type
Definition omp-general.h:252
@ STRUCTURE_BASE
Definition omp-general.h:254
@ ARRAY_BASE
Definition omp-general.h:253
@ COMPONENT_SELECTOR
Definition omp-general.h:255
@ ACCESS_METHOD
Definition omp-general.h:256
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:3321
enum omp_requires omp_requires_mask
Definition omp-general.cc:48
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:1457
tree oacc_build_routine_dims(tree clauses)
Definition omp-general.cc:3237
tree omp_resolve_declare_variant(tree)
Definition omp-general.cc:2576
tree oacc_replace_fn_attrib_attr(tree attribs, tree dims)
Definition omp-general.cc:3000
bool omp_privatize_by_reference(tree decl)
Definition omp-general.cc:98
tree omp_check_context_selector(location_t loc, tree ctx)
Definition omp-general.cc:1289
int oacc_get_fn_dim_size(tree fn, int axis)
Definition omp-general.cc:3287
omp_addr_tokenizer::omp_addr_token omp_addr_token
Definition omp-general.h:283
tree omp_loop_number_of_iterations(tree, int, tree *=NULL)
Definition omp-general.cc:3929
tree make_trait_set_selector(enum omp_tss_code, tree, tree)
Definition omp-general.cc:1489
bool omp_mappable_type(tree type)
Definition omp-general.cc:86
tree make_trait_property(tree, tree, tree)
Definition omp-general.cc:1509
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:3014
void omp_maybe_apply_loop_xforms(tree *, tree)
Definition omp-general.cc:4243
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:3306
tree omp_get_context_selector_list(tree, enum omp_tss_code)
Definition omp-general.cc:2259
int omp_context_selector_set_compare(enum omp_tss_code, tree, tree)
Definition omp-general.cc:2091
poly_uint64 omp_max_vf(void)
Definition omp-general.cc:992
tree make_trait_selector(enum omp_ts_code, tree, tree, tree)
Definition omp-general.cc:1496
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:1024
tree oacc_launch_pack(unsigned code, tree device, unsigned op)
Definition omp-general.cc:2966
dump_flags_t get_openacc_privatization_dump_flags()
Definition omp-general.h:204
omp_requires
Definition omp-general.h:190
@ OMP_REQUIRES_REVERSE_OFFLOAD
Definition omp-general.h:195
@ OMP_REQUIRES_DYNAMIC_ALLOCATORS
Definition omp-general.h:194
@ OMP_REQUIRES_UNIFIED_ADDRESS
Definition omp-general.h:192
@ OMP_REQUIRES_ATOMIC_DEFAULT_MEM_ORDER_USED
Definition omp-general.h:196
@ OMP_REQUIRES_UNIFIED_SHARED_MEMORY
Definition omp-general.h:193
@ OMP_REQUIRES_SELF_MAPS
Definition omp-general.h:198
@ OMP_REQUIRES_TARGET_USED
Definition omp-general.h:197
@ OMP_REQUIRES_ATOMIC_DEFAULT_MEM_ORDER
Definition omp-general.h:191
void omp_construct_traits_to_codes(tree, int, enum tree_code *)
Definition omp-general.cc:1044
int oacc_verify_routine_clauses(tree, tree *, location_t, const char *)
Definition omp-general.cc:3074
tree omp_get_context_selector(tree, enum omp_tss_code, enum omp_ts_code)
Definition omp-general.cc:2246
void oacc_set_fn_attrib(tree fn, tree clauses, vec< tree > *args)
Definition omp-general.cc:3025
tree omp_get_for_step_from_incr(location_t loc, tree incr)
Definition omp-general.cc:181
int omp_context_selector_matches(tree)
Definition omp-general.cc:1521
void omp_adjust_for_condition(location_t loc, enum tree_code *cond_code, tree *n2, tree v, tree step)
Definition omp-general.cc:107
const char * omp_context_name_list_prop(tree)
Definition omp-general.cc:1264
bool offloading_function_p(tree fn)
Definition omp-general.cc:3275
tree oacc_get_fn_attrib(tree fn)
Definition omp-general.cc:3267
bool omp_parse_expr(vec< omp_addr_token * > &, tree)
Definition omp-general.cc:3827
omp_tss_code
Definition omp-selectors.h:28
omp_ts_code
Definition omp-selectors.h:39
Definition genautomata.cc:499
Definition omp-general.h:263
union omp_addr_tokenizer::omp_addr_token::@52 u
tree expr
Definition omp-general.h:265
structure_base_kinds structure_base_kind
Definition omp-general.h:270
enum token_type type
Definition omp-general.h:264
access_method_kinds access_kind
Definition omp-general.h:269
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
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 gengtype.h:252
#define NULL
Definition system.h:50
omp_clause_code
Definition tree-core.h:245
omp_clause_schedule_kind
Definition tree-core.h:555