This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [gomp4.1] Handle linear clause modifiers in declare simd
- From: Ilya Verbin <iverbin at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 14 Jul 2015 14:41:04 +0300
- Subject: Re: [gomp4.1] Handle linear clause modifiers in declare simd
- Authentication-results: sourceware.org; auth=none
- References: <20150701105538 dot GT10247 at tucnak dot redhat dot com>
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