This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r197161 - in /branches/gomp-4_0-branch/gcc: Cha...
- From: jakub at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 27 Mar 2013 12:04:03 -0000
- Subject: r197161 - in /branches/gomp-4_0-branch/gcc: Cha...
Author: jakub
Date: Wed Mar 27 12:04:03 2013
New Revision: 197161
URL: http://gcc.gnu.org/viewcvs?rev=197161&root=gcc&view=rev
Log:
* gimple-pretty-print.c (dump_gimple_omp_for): Handle different
GIMPLE_OMP_FOR kinds.
* tree.def (OMP_SIMD, OMP_FOR_SIMD, OMP_DISTRIBUTE): New tree codes.
* gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_MASK,
GF_OMP_FOR_KIND_FOR, GF_OMP_FOR_KIND_SIMD, GF_OMP_FOR_KIND_FOR_SIMD
and GF_OMP_FOR_KIND_DISTRIBUTE.
(gimple_omp_for_kind, gimple_omp_for_set_kind): New inline functions.
* gimplify.c (is_gimple_stmt, gimplify_omp_for, gimplify_expr): Handle
OMP_SIMD, OMP_FOR_SIMD and OMP_DISTRIBUTE.
* tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
Handle new OpenMP 4.0 clauses.
* tree-pretty-print.c (dump_omp_clause): Likewise.
(dump_generic_node): Handle OMP_SIMD, OMP_FOR_SIMD and OMP_DISTRIBUTE.
* tree.h (enum omp_clause_code): Add OMP_CLAUSE_LINEAR,
OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_FROM, OMP_CLAUSE_TO,
OMP_CLAUSE_UNIFORM, OMP_CLAUSE_MAP, OMP_CLAUSE_DEVICE,
OMP_CLAUSE_DIST_SCHEDULE, OMP_CLAUSE_INBRANCH, OMP_CLAUSE_NOTINBRANCH,
OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN,
OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_FOR, OMP_CLAUSE_PARALLEL,
OMP_CLAUSE_SECTIONS and OMP_CLAUSE_TASKGROUP.
(OMP_LOOP_CHECK): Define.
(OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use OMP_LOOP_CHECK instead of
OMP_FOR_CHECK.
(OMP_CLAUSE_DECL): Extend check range up to OMP_CLAUSE_MAP.
(OMP_CLAUSE_LINEAR_STEP, OMP_CLAUSE_ALIGNED_ALIGNMENT,
OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_DEVICE_ID,
OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR, OMP_CLAUSE_SAFELEN_EXPR,
OMP_CLAUSE_SIMDLEN_EXPR): Define.
(enum omp_clause_depend_kind, enum omp_clause_map_kind,
enum omp_clause_proc_bind_kind): New enums.
(OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
OMP_CLAUSE_PROC_BIND_KIND): Define.
(struct tree_omp_clause): Add subcode.depend_kind, subcode.map_kind
and subcode.proc_bind_kind.
(find_omp_clause): New prototype.
* omp-builtins.def (BUILT_IN_GOMP_CANCEL,
BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
* tree-flow.h (find_omp_clause): Remove prototype.
c/
* c-parser.c (c_parser_omp_all_clauses): Change mask argument type
from unsigned to omp_clause_mask.
(c_parser_omp_for_loop): Adjust c_finish_omp_for caller.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
(c_parser_omp_parallel): Use omp_clause_mask type instead of unsigned
for mask, use OMP_CLAUSE_MASK_1 instead of 1 for masks.
cp/
* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK instead of
OMP_FOR_CHECK.
(finish_omp_for): Add enum tree_code second argument.
(finish_omp_cancel, finish_omp_cancellation_point): New prototypes.
* cp-gimplify.c (cp_gimplify_expr, cp_genericize_r): Handle
OMP_SIMD, OMP_FOR_SIMD and OMP_DISTRIBUTE.
* semantics.c (finish_omp_clauses): Handle new OpenMP 4.0 clauses.
(finish_omp_for): Add code argument, pass it down to make_node
or c_finish_omp_for.
(finish_omp_cancel, finish_omp_cancellation_point): New functions.
* parser.c (cp_parser_omp_clause_name): Add parsing of new
OpenMP 4.0 clauses.
(cp_parser_omp_var_list_no_open): Add COLON argument, if non-NULL,
accept termination by colon instead of closing paren.
(cp_parser_omp_var_list, cp_parser_omp_clause_reduction): Adjust
callers.
(cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind,
cp_parser_omp_clause_num_teams, cp_parser_omp_clause_aligned,
cp_parser_omp_clause_linear, cp_parser_omp_clause_depend,
cp_parser_omp_clause_map, cp_parser_omp_clause_device,
cp_parser_omp_clause_dist_schedule, cp_parser_omp_clause_proc_bind):
New functions.
(cp_parser_omp_all_clauses): Change mask argument's type to
omp_clause_mask from unsigned. Fix c_name for
PRAGMA_OMP_CLAUSE_UNTIED. Handle new OpenMP 4.0 clauses.
(cp_parser_omp_for_loop): Add code argument. Pass it down to
finish_omp_for.
(OMP_SIMD_CLAUSE_MASK): Define.
(cp_parser_omp_simd): New function.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
(cp_parser_omp_for): Handle parsing of #pragma omp for simd.
(cp_parser_omp_parallel): Handle parsing of
#pragma omp parallel for simd. Use omp_clause_mask type
instead of unsigned for mask, use OMP_CLAUSE_MASK_1 instead
of 1 for masks.
(OMP_CANCEL_CLAUSE_MASK, OMP_CANCELLATION_POINT_CLAUSE_MASK): Define.
(cp_parser_omp_cancel, cp_parser_omp_cancellation_point): New
functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_SIMD, PRAGMA_OMP_CANCEL
and PRAGMA_OMP_CANCELLATION_POINT.
(cp_parser_pragma): Handle PRAGMA_OMP_SIMD.
* pt.c (tsubst_expr): Handle OMP_SIMD, OMP_FOR_SIMD and
OMP_DISTRIBUTE. Pass down TREE_CODE to finish_omp_for.
fortran/
* f95-lang.c (ATTR_NULL): Define.
c-family/
* c-omp.c (c_finish_omp_for): Add code argument, pass it down to
make_code.
(c_split_parallel_clauses): Handle OMP_CLAUSE_SAFELEN,
OMP_CLAUSE_ALIGNED and OMP_CLAUSE_LINEAR.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
PRAGMA_OMP_DECLARE_SIMD, PRAGMA_OMP_DECLARE_TARGET,
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET,
PRAGMA_OMP_FOR_SIMD, PRAGMA_OMP_PARALLEL_FOR_SIMD, PRAGMA_OMP_SIMD,
PRAGMA_OMP_TARGET, PRAGMA_OMP_TARGET_DATA, PRAGMA_OMP_TARGET_UPDATE,
PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
PRAGMA_OMP_CLAUSE_TO and PRAGMA_OMP_CLAUSE_UNIFORM.
* c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
* c-common.h (c_finish_omp_for): Add enum tree_code as second
argument.
(OMP_CLAUSE_MASK_1): Define.
(omp_clause_mask): For HWI >= 64 new typedef for
unsigned HOST_WIDE_INT, otherwise a class with needed ctors and
operators.
Added:
branches/gomp-4_0-branch/gcc/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/fortran/ChangeLog.gomp
Modified:
branches/gomp-4_0-branch/gcc/c-family/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/c-family/c-common.h
branches/gomp-4_0-branch/gcc/c-family/c-omp.c
branches/gomp-4_0-branch/gcc/c-family/c-pragma.c
branches/gomp-4_0-branch/gcc/c-family/c-pragma.h
branches/gomp-4_0-branch/gcc/c/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/c/c-parser.c
branches/gomp-4_0-branch/gcc/cp/ChangeLog.gomp
branches/gomp-4_0-branch/gcc/cp/cp-gimplify.c
branches/gomp-4_0-branch/gcc/cp/cp-tree.h
branches/gomp-4_0-branch/gcc/cp/parser.c
branches/gomp-4_0-branch/gcc/cp/pt.c
branches/gomp-4_0-branch/gcc/cp/semantics.c
branches/gomp-4_0-branch/gcc/fortran/f95-lang.c
branches/gomp-4_0-branch/gcc/gimple-pretty-print.c
branches/gomp-4_0-branch/gcc/gimple.h
branches/gomp-4_0-branch/gcc/gimplify.c
branches/gomp-4_0-branch/gcc/omp-builtins.def
branches/gomp-4_0-branch/gcc/tree-flow.h
branches/gomp-4_0-branch/gcc/tree-pretty-print.c
branches/gomp-4_0-branch/gcc/tree.c
branches/gomp-4_0-branch/gcc/tree.def
branches/gomp-4_0-branch/gcc/tree.h