* [Bug middle-end/106492] [OpenMP] ICE in #pragma omp for simd and bitfields
2022-07-31 20:23 [Bug middle-end/106492] New: ICE in #pragma omp for simd sandra at gcc dot gnu.org
@ 2022-08-01 9:00 ` burnus at gcc dot gnu.org
2022-08-01 12:33 ` burnus at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2022-08-01 9:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106492
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2022-08-01
Keywords| |ice-on-valid-code, openmp
Status|UNCONFIRMED |NEW
CC| |burnus at gcc dot gnu.org,
| |jakub at gcc dot gnu.org
Summary|ICE in #pragma omp for simd |[OpenMP] ICE in #pragma omp
|and bitfields |for simd and bitfields
Ever confirmed|0 |1
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
The ICE occurs for the second SIMD loop (in U::U()) – it compiles when
commenting the U::U() loops out - but it still has an ICE with only the S::S()
body commented out.
* * *
pr95063.C:19:8: error: type mismatch in binary expression
<unnamed-signed:12>
<unnamed-signed:12>
int
That's for 'a = a + D.2617;' - To show more context, this lines appears in the
following omplow dump (slightly edited). - The D.2617 variable is generated
before line 11738 in omp-low.cc's lower_omp_for where the type is type =
fd.iter_type.
#pragma omp for private(k.2) firstprivate(a) lastprivate(a)
for (k.2 = 0; k.2 < 64; k.2 = k.2 + 1)
{
int D.2617;
int D.2618;
<unnamed-signed:12> a;
int k;
a = a + D.2617; // <<< ICE here:
k = 0;
#pragma omp simd _looptemp_(D.2617) _looptemp_(D.2618) linear(k:1)
linear(a:1)
for (k = 0; k < 64; k = k + 1)
a.0 = a;
a.1 = (<unnamed-unsigned:12>) a.0;
D.2611 = a.1 + 1;
a = (<unnamed-signed:12>) D.2611;
#pragma omp continue (k, k)
if (k == 64) goto <D.2620>; else goto <D.2619>;
<D.2620>:
a = a;
<D.2619>:
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/106492] [OpenMP] ICE in #pragma omp for simd and bitfields
2022-07-31 20:23 [Bug middle-end/106492] New: ICE in #pragma omp for simd sandra at gcc dot gnu.org
2022-08-01 9:00 ` [Bug middle-end/106492] [OpenMP] ICE in #pragma omp for simd and bitfields burnus at gcc dot gnu.org
@ 2022-08-01 12:33 ` burnus at gcc dot gnu.org
2022-08-04 7:36 ` burnus at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2022-08-01 12:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106492
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
The following seems to fix it:
diff --git a/gcc/omp-low.cc b/gcc/omp-low.cc
index d73c165f029..1af18e92395 100644
--- a/gcc/omp-low.cc
+++ b/gcc/omp-low.cc
@@ -6244,7 +6244,8 @@ lower_rec_input_clauses (tree clauses, gimple_seq *ilist,
x = fold_build2 (POINTER_PLUS_EXPR,
TREE_TYPE (x), x, t);
else
- x = fold_build2 (PLUS_EXPR, TREE_TYPE (x), x, t);
+ x = fold_build2 (PLUS_EXPR, TREE_TYPE (x), x,
+ fold_convert (TREE_TYPE (x), t));
}
if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_LINEAR
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/106492] [OpenMP] ICE in #pragma omp for simd and bitfields
2022-07-31 20:23 [Bug middle-end/106492] New: ICE in #pragma omp for simd sandra at gcc dot gnu.org
2022-08-01 9:00 ` [Bug middle-end/106492] [OpenMP] ICE in #pragma omp for simd and bitfields burnus at gcc dot gnu.org
2022-08-01 12:33 ` burnus at gcc dot gnu.org
@ 2022-08-04 7:36 ` burnus at gcc dot gnu.org
2022-08-09 5:58 ` cvs-commit at gcc dot gnu.org
2022-08-10 19:23 ` cvs-commit at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2022-08-04 7:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106492
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Patch:
https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599308.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/106492] [OpenMP] ICE in #pragma omp for simd and bitfields
2022-07-31 20:23 [Bug middle-end/106492] New: ICE in #pragma omp for simd sandra at gcc dot gnu.org
` (2 preceding siblings ...)
2022-08-04 7:36 ` burnus at gcc dot gnu.org
@ 2022-08-09 5:58 ` cvs-commit at gcc dot gnu.org
2022-08-10 19:23 ` cvs-commit at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-08-09 5:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106492
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>:
https://gcc.gnu.org/g:8a16b9f983824b6b9a25275cd23b6bba8c98b800
commit r13-1997-g8a16b9f983824b6b9a25275cd23b6bba8c98b800
Author: Tobias Burnus <tobias@codesourcery.com>
Date: Tue Aug 9 07:57:40 2022 +0200
OpenMP: Fix folding with simd's linear clause [PR106492]
gcc/ChangeLog:
PR middle-end/106492
* omp-low.cc (lower_rec_input_clauses): Add missing folding
to data type of linear-clause list item.
gcc/testsuite/ChangeLog:
PR middle-end/106492
* g++.dg/gomp/pr106492.C: New test.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/106492] [OpenMP] ICE in #pragma omp for simd and bitfields
2022-07-31 20:23 [Bug middle-end/106492] New: ICE in #pragma omp for simd sandra at gcc dot gnu.org
` (3 preceding siblings ...)
2022-08-09 5:58 ` cvs-commit at gcc dot gnu.org
@ 2022-08-10 19:23 ` cvs-commit at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-08-10 19:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106492
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Tobias Burnus
<burnus@gcc.gnu.org>:
https://gcc.gnu.org/g:68b8c55c7e7de8438ea97f600cdccac826b8e67d
commit r12-8678-g68b8c55c7e7de8438ea97f600cdccac826b8e67d
Author: Tobias Burnus <tobias@codesourcery.com>
Date: Tue Aug 9 07:57:40 2022 +0200
OpenMP: Fix folding with simd's linear clause [PR106492]
gcc/ChangeLog:
PR middle-end/106492
* omp-low.cc (lower_rec_input_clauses): Add missing folding
to data type of linear-clause list item.
gcc/testsuite/ChangeLog:
PR middle-end/106492
* g++.dg/gomp/pr106492.C: New test.
(cherry picked from commit 8a16b9f983824b6b9a25275cd23b6bba8c98b800)
^ permalink raw reply [flat|nested] 6+ messages in thread