]> gcc.gnu.org Git - gcc.git/commit
openmp: Temporarily disable into_ssa when gimplifying OpenMP reduction clauses [PR99007]
authorJakub Jelinek <jakub@redhat.com>
Wed, 10 Feb 2021 09:34:58 +0000 (10:34 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 19 Mar 2021 23:27:47 +0000 (00:27 +0100)
commitdeba6b20a3889aa23f0e4b3a5248de4172a0167d
tree3c160b74e4afeca99f81df39bd80ef1d54256630
parent8b7f2d3eae16dd629ae7ae40bb76f4bb0099f441
openmp: Temporarily disable into_ssa when gimplifying OpenMP reduction clauses [PR99007]

gimplify_scan_omp_clauses was already calling gimplify_expr with false as
last argument to make sure it is not an SSA_NAME, but as the testcases show,
that is not enough, SSA_NAME temporaries created during that gimplification
can be reused too and we can't allow SSA_NAMEs to be used across OpenMP
region boundaries, as we can only firstprivatize decls.

Fixed by temporarily disabling into_ssa.

2021-02-10  Jakub Jelinek  <jakub@redhat.com>

PR middle-end/99007
* gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
calls.

* g++.dg/gomp/pr99007.C: New test.
* gcc.dg/gomp/pr99007-1.c: New test.
* gcc.dg/gomp/pr99007-2.c: New test.
* gcc.dg/gomp/pr99007-3.c: New test.

(cherry picked from commit bd0e37f68a3aed944df4eb739a0734bb87153749)
gcc/gimplify.c
gcc/testsuite/g++.dg/gomp/pr99007.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/gomp/pr99007-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/gomp/pr99007-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/gomp/pr99007-3.c [new file with mode: 0644]
This page took 0.06906 seconds and 6 git commands to generate.