diff options
author | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-20 23:47:35 +0000 |
---|---|---|
committer | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-20 23:47:35 +0000 |
commit | 6b40961666f073231ed8a76e6e33deeda063cde7 (patch) | |
tree | 8247eb4232e8be98b7f61bd68bab2fd1a9f06ca3 /gcc/tree-core.h | |
parent | e6b1b76450af5f98696ecedd4bd9a0ed18cdb2a6 (diff) | |
parent | fc1ce0cf396bf638746d546a557158d87f13849b (diff) | |
download | gcc-6b40961666f073231ed8a76e6e33deeda063cde7.tar.gz |
Merge in trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@203881 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-core.h')
-rw-r--r-- | gcc/tree-core.h | 115 |
1 files changed, 107 insertions, 8 deletions
diff --git a/gcc/tree-core.h b/gcc/tree-core.h index 89b7e18b787..9e33bdd2e64 100644 --- a/gcc/tree-core.h +++ b/gcc/tree-core.h @@ -43,6 +43,7 @@ struct function; struct real_value; struct fixed_value; struct ptr_info_def; +struct range_info_def; struct die_struct; struct pointer_set_t; @@ -242,9 +243,27 @@ enum omp_clause_code { /* OpenMP clause: linear (variable-list[:linear-step]). */ OMP_CLAUSE_LINEAR, + /* OpenMP clause: aligned (variable-list[:alignment]). */ + OMP_CLAUSE_ALIGNED, + + /* OpenMP clause: depend ({in,out,inout}:variable-list). */ + OMP_CLAUSE_DEPEND, + /* OpenMP clause: uniform (argument-list). */ OMP_CLAUSE_UNIFORM, + /* OpenMP clause: from (variable-list). */ + OMP_CLAUSE_FROM, + + /* OpenMP clause: to (variable-list). */ + OMP_CLAUSE_TO, + + /* OpenMP clause: map ({alloc:,to:,from:,tofrom:,}variable-list). */ + OMP_CLAUSE_MAP, + + /* Internal clause: temporary for combined loops expansion. */ + OMP_CLAUSE__LOOPTEMP_, + /* OpenMP clause: if (scalar-expression). */ OMP_CLAUSE_IF, @@ -275,9 +294,45 @@ enum omp_clause_code { /* OpenMP clause: mergeable. */ OMP_CLAUSE_MERGEABLE, + /* OpenMP clause: device (integer-expression). */ + OMP_CLAUSE_DEVICE, + + /* OpenMP clause: dist_schedule (static[:chunk-size]). */ + OMP_CLAUSE_DIST_SCHEDULE, + + /* OpenMP clause: inbranch. */ + OMP_CLAUSE_INBRANCH, + + /* OpenMP clause: notinbranch. */ + OMP_CLAUSE_NOTINBRANCH, + + /* OpenMP clause: num_teams(integer-expression). */ + OMP_CLAUSE_NUM_TEAMS, + + /* OpenMP clause: thread_limit(integer-expression). */ + OMP_CLAUSE_THREAD_LIMIT, + + /* OpenMP clause: proc_bind ({master,close,spread}). */ + OMP_CLAUSE_PROC_BIND, + /* OpenMP clause: safelen (constant-integer-expression). */ OMP_CLAUSE_SAFELEN, + /* OpenMP clause: simdlen (constant-integer-expression). */ + OMP_CLAUSE_SIMDLEN, + + /* OpenMP clause: for. */ + OMP_CLAUSE_FOR, + + /* OpenMP clause: parallel. */ + OMP_CLAUSE_PARALLEL, + + /* OpenMP clause: sections. */ + OMP_CLAUSE_SECTIONS, + + /* OpenMP clause: taskgroup. */ + OMP_CLAUSE_TASKGROUP, + /* Internally used only clause, holding SIMD uid. */ OMP_CLAUSE__SIMDUID_ }; @@ -784,6 +839,12 @@ struct GTY(()) tree_base { OMP_CLAUSE_LINEAR_NO_COPYIN in OMP_CLAUSE_LINEAR + OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION in + OMP_CLAUSE_MAP + + OMP_CLAUSE_REDUCTION_OMP_ORIG_REF in + OMP_CLAUSE_REDUCTION + TRANSACTION_EXPR_RELAXED in TRANSACTION_EXPR @@ -801,6 +862,9 @@ struct GTY(()) tree_base { OMP_PARALLEL_COMBINED in OMP_PARALLEL + OMP_ATOMIC_SEQ_CST in + OMP_ATOMIC* + OMP_CLAUSE_PRIVATE_OUTER_REF in OMP_CLAUSE_PRIVATE @@ -1020,6 +1084,35 @@ struct GTY(()) tree_constructor { vec<constructor_elt, va_gc> *elts; }; +enum omp_clause_depend_kind +{ + OMP_CLAUSE_DEPEND_IN, + OMP_CLAUSE_DEPEND_OUT, + OMP_CLAUSE_DEPEND_INOUT +}; + +enum omp_clause_map_kind +{ + OMP_CLAUSE_MAP_ALLOC, + OMP_CLAUSE_MAP_TO, + OMP_CLAUSE_MAP_FROM, + OMP_CLAUSE_MAP_TOFROM, + /* The following kind is an internal only map kind, used for pointer based + array sections. OMP_CLAUSE_SIZE for these is not the pointer size, + which is implicitly POINTER_SIZE / BITS_PER_UNIT, but the bias. */ + OMP_CLAUSE_MAP_POINTER +}; + +enum omp_clause_proc_bind_kind +{ + /* Numbers should match omp_proc_bind_t enum in omp.h. */ + OMP_CLAUSE_PROC_BIND_FALSE = 0, + OMP_CLAUSE_PROC_BIND_TRUE = 1, + OMP_CLAUSE_PROC_BIND_MASTER = 2, + OMP_CLAUSE_PROC_BIND_CLOSE = 3, + OMP_CLAUSE_PROC_BIND_SPREAD = 4 +}; + struct GTY(()) tree_exp { struct tree_typed typed; location_t locus; @@ -1051,8 +1144,14 @@ struct GTY(()) tree_ssa_name { /* Statement that defines this SSA name. */ gimple def_stmt; - /* Pointer attributes used for alias analysis. */ - struct ptr_info_def *ptr_info; + /* Value range information. */ + union ssa_name_info_type { + /* Pointer attributes used for alias analysis. */ + struct GTY ((tag ("0"))) ptr_info_def *ptr_info; + /* Value range attributes used for zero/sign extension elimination. */ + struct GTY ((tag ("1"))) range_info_def *range_info; + } GTY ((desc ("%1.typed.type ?" \ + "!POINTER_TYPE_P (TREE_TYPE ((tree)&%1)) : 2"))) info; /* Immediate uses list for this SSA_NAME. */ struct ssa_use_operand_d imm_uses; @@ -1071,9 +1170,12 @@ struct GTY(()) tree_omp_clause { location_t locus; enum omp_clause_code code; union omp_clause_subcode { - enum omp_clause_default_kind default_kind; - enum omp_clause_schedule_kind schedule_kind; - enum tree_code reduction_code; + enum omp_clause_default_kind default_kind; + enum omp_clause_schedule_kind schedule_kind; + enum omp_clause_depend_kind depend_kind; + enum omp_clause_map_kind map_kind; + enum omp_clause_proc_bind_kind proc_bind_kind; + enum tree_code reduction_code; } GTY ((skip)) subcode; /* The gimplification of OMP_CLAUSE_REDUCTION_{INIT,MERGE} for omp-low's @@ -1652,9 +1754,6 @@ extern const char *const tree_code_class_strings[]; /* Number of argument-words in each kind of tree-node. */ extern const unsigned char tree_code_length[]; -/* Names of tree components. */ -extern const char *const tree_code_name[]; - /* Vector of all alias pairs for global symbols. */ extern GTY(()) vec<alias_pair, va_gc> *alias_pairs; |