diff options
Diffstat (limited to 'gcc/gimple.h')
-rw-r--r-- | gcc/gimple.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/gcc/gimple.h b/gcc/gimple.h index 8ae07c9ba5d..9f29561eb37 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -110,6 +110,9 @@ enum gf_mask { GF_CALL_ALLOCA_FOR_VAR = 1 << 5, GF_CALL_INTERNAL = 1 << 6, GF_OMP_PARALLEL_COMBINED = 1 << 0, + GF_OMP_FOR_KIND_MASK = 3 << 0, + GF_OMP_FOR_KIND_FOR = 0 << 0, + GF_OMP_FOR_KIND_SIMD = 1 << 0, /* True on an GIMPLE_OMP_RETURN statement if the return does not require a thread synchronization via some sort of barrier. The exact barrier @@ -799,7 +802,7 @@ gimple gimple_build_switch_nlabels (unsigned, tree, tree); gimple gimple_build_switch (tree, tree, vec<tree> ); gimple gimple_build_omp_parallel (gimple_seq, tree, tree, tree); gimple gimple_build_omp_task (gimple_seq, tree, tree, tree, tree, tree, tree); -gimple gimple_build_omp_for (gimple_seq, tree, size_t, gimple_seq); +gimple gimple_build_omp_for (gimple_seq, int, tree, size_t, gimple_seq); gimple gimple_build_omp_critical (gimple_seq, tree); gimple gimple_build_omp_section (gimple_seq); gimple gimple_build_omp_continue (tree, tree); @@ -854,7 +857,7 @@ unsigned get_gimple_rhs_num_ops (enum tree_code); gimple gimple_alloc_stat (enum gimple_code, unsigned MEM_STAT_DECL); const char *gimple_decl_printable_name (tree, int); tree gimple_get_virt_method_for_binfo (HOST_WIDE_INT, tree); -tree gimple_extract_devirt_binfo_from_cst (tree); +tree gimple_extract_devirt_binfo_from_cst (tree, tree); /* Returns true iff T is a scalar register variable. */ extern bool is_gimple_reg (tree); @@ -3948,6 +3951,27 @@ gimple_omp_critical_set_name (gimple gs, tree name) } +/* Return the kind of OMP for statemement. */ + +static inline int +gimple_omp_for_kind (const_gimple g) +{ + GIMPLE_CHECK (g, GIMPLE_OMP_FOR); + return (gimple_omp_subcode (g) & GF_OMP_FOR_KIND_MASK); +} + + +/* Set the OMP for kind. */ + +static inline void +gimple_omp_for_set_kind (gimple g, int kind) +{ + GIMPLE_CHECK (g, GIMPLE_OMP_FOR); + g->gsbase.subcode = (g->gsbase.subcode & ~GF_OMP_FOR_KIND_MASK) + | (kind & GF_OMP_FOR_KIND_MASK); +} + + /* Return the clauses associated with OMP_FOR GS. */ static inline tree |