This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gomp4.1] Handle linear clause modifiers in declare simd


On Wed, Jul 01, 2015 at 12:55:38 +0200, Jakub Jelinek wrote:
> 	* cgraph.h (enum cgraph_simd_clone_arg_type): Add
> 	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
> 	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP,
> 	and SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
> 	(struct cgraph_simd_clone_arg): Adjust comment.
> 	* omp-low.c (simd_clone_clauses_extract): Honor
> 	OMP_CLAUSE_LINEAR_KIND.
> 	(simd_clone_mangle): Mangle the various linear kinds
> 	per the new ABI.
> 	(simd_clone_adjust_argument_types): Handle
> 	SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
> 	(simd_clone_init_simd_arrays): Don't do anything
> 	for uval.
> 	(simd_clone_adjust): Handle
> 	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
> 	SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
> 	Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
> c/
> 	* c-tree.h (c_finish_omp_clauses): Add declare_simd argument.
> 	* c-parser.c (c_parser_omp_clause_linear): Don't handle uval
> 	modifier in C.
> 	(c_parser_omp_all_clauses): If mask includes uniform clause,
> 	pass true to c_finish_omp_clauses' declare_simd.
> 	* c-typeck.c (c_finish_omp_clauses): Add declare_simd argument,
> 	don't set need_implicitly_determined if it is true.
> cp/
> 	* cp-tree.h (finish_omp_clauses): Add declare_simd argument.
> 	* parser.c (cp_parser_omp_all_clauses): If mask includes uniform
> 	clause, pass true to finish_omp_clauses' declare_simd.
> 	* pt.c (apply_late_template_attributes): Pass true to
> 	finish_omp_clauses' declare_simd.
> 	* semantics.c (finish_omp_clauses): Add declare_simd argument,
> 	don't set need_implicitly_determined if it is true.
> testsuite/
> 	* gcc.dg/gomp/clause-1.c (foo): Add some linear clause tests.
> 	* g++.dg/gomp/clause-3.C (foo): Likewise.
> 	* g++.dg/gomp/declare-simd-3.C: New test.

This caused:

gcc/tree-vect-stmts.c: In function âbool vectorizable_simd_clone_call(gimple, gimple_stmt_iterator*, gimple_statement_base**, slp_tree)â:
gcc/tree-vect-stmts.c:2810:13: error: enumeration value âSIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEPâ not handled in switch [-Werror=switch]
      switch (n->simdclone->args[i].arg_type)
             ^
gcc/tree-vect-stmts.c:2810:13: error: enumeration value âSIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEPâ not handled in switch [-Werror=switch]
gcc/tree-vect-stmts.c:2810:13: error: enumeration value âSIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEPâ not handled in switch [-Werror=switch]
cc1plus: all warnings being treated as errors
make[4]: *** [tree-vect-stmts.o] Error 1

  -- Ilya


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]