* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
@ 2021-08-27 7:05 ` rguenth at gcc dot gnu.org
2021-08-27 7:55 ` [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67 marxin at gcc dot gnu.org
` (23 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-08-27 7:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |x86_64-*-*
Summary|ICE on valid code at -O3 on |[12 Regression] ICE on
|x86_64-linux-gnu: in |valid code at -O3 on
|determine_exit_conditions, |x86_64-linux-gnu: in
|at |determine_exit_conditions,
|tree-ssa-loop-manip.c:1049 |at
| |tree-ssa-loop-manip.c:1049
Target Milestone|--- |12.0
Version|unknown |12.0
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
This looks similar to PR102072
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
2021-08-27 7:05 ` [Bug tree-optimization/102087] [12 Regression] " rguenth at gcc dot gnu.org
@ 2021-08-27 7:55 ` marxin at gcc dot gnu.org
2021-08-27 7:55 ` marxin at gcc dot gnu.org
` (22 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-08-27 7:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Summary|[12 Regression] ICE on |[12 Regression] ICE on
|valid code at -O3 on |valid code at -O3 on
|x86_64-linux-gnu: in |x86_64-linux-gnu: in
|determine_exit_conditions, |determine_exit_conditions,
|at |at
|tree-ssa-loop-manip.c:1049 |tree-ssa-loop-manip.c:1049
| |since
| |r12-3136-g3673dcf6d6baeb67
Last reconfirmed| |2021-08-27
CC| |marxin at gcc dot gnu.org
Ever confirmed|0 |1
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
2021-08-27 7:05 ` [Bug tree-optimization/102087] [12 Regression] " rguenth at gcc dot gnu.org
2021-08-27 7:55 ` [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67 marxin at gcc dot gnu.org
@ 2021-08-27 7:55 ` marxin at gcc dot gnu.org
2021-08-27 10:04 ` guojiufu at gcc dot gnu.org
` (21 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-08-27 7:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r12-3136-g3673dcf6d6baeb67.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (2 preceding siblings ...)
2021-08-27 7:55 ` marxin at gcc dot gnu.org
@ 2021-08-27 10:04 ` guojiufu at gcc dot gnu.org
2021-08-27 12:52 ` hjl.tools at gmail dot com
` (20 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-27 10:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
Jiu Fu Guo <guojiufu at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |DUPLICATE
--- Comment #3 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
Yes, it is a duplicate of PR102072.
*** This bug has been marked as a duplicate of bug 102072 ***
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (3 preceding siblings ...)
2021-08-27 10:04 ` guojiufu at gcc dot gnu.org
@ 2021-08-27 12:52 ` hjl.tools at gmail dot com
2021-08-27 12:53 ` hjl.tools at gmail dot com
` (19 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: hjl.tools at gmail dot com @ 2021-08-27 12:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|DUPLICATE |---
Status|RESOLVED |REOPENED
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
Reopen. This test isn't specific to armeb.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (4 preceding siblings ...)
2021-08-27 12:52 ` hjl.tools at gmail dot com
@ 2021-08-27 12:53 ` hjl.tools at gmail dot com
2021-08-27 13:27 ` guojiufu at gcc dot gnu.org
` (18 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: hjl.tools at gmail dot com @ 2021-08-27 12:53 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |clyon at gcc dot gnu.org
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
*** Bug 102072 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (5 preceding siblings ...)
2021-08-27 12:53 ` hjl.tools at gmail dot com
@ 2021-08-27 13:27 ` guojiufu at gcc dot gnu.org
2021-08-27 14:08 ` guojiufu at gcc dot gnu.org
` (17 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-27 13:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #6 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
Drafting patch to calculate three items: control, bound and cmp.
----
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 7af92d1c893..c6e4b24fd83 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -1482,7 +1482,7 @@ number_of_iterations_until_wrap (class loop *, tree type,
affine_iv *iv0,
affine_iv *iv1, class tree_niter_desc *niter)
{
tree niter_type = unsigned_type_for (type);
- tree step, num, assumptions, may_be_zero;
+ tree step, num, assumptions, may_be_zero, span;
wide_int high, low, max, min;
may_be_zero = fold_build2 (LE_EXPR, boolean_type_node, iv1->base,
iv0->base);
@@ -1513,6 +1513,8 @@ number_of_iterations_until_wrap (class loop *, tree type,
affine_iv *iv0,
low = wi::to_wide (iv0->base);
else
low = min;
+
+ niter->control = *iv1;
}
/* {base, -C} < n. */
else if (tree_int_cst_sign_bit (iv0->step) && integer_zerop (iv1->step))
@@ -1533,6 +1535,8 @@ number_of_iterations_until_wrap (class loop *, tree type,
affine_iv *iv0,
high = wi::to_wide (iv1->base);
else
high = max;
+
+ niter->control = *iv0;
}
else
return false;
@@ -1556,6 +1560,14 @@ number_of_iterations_until_wrap (class loop *, tree
type, affine_iv *iv0,
niter->assumptions, assumptions);
niter->control.no_overflow = false;
+ tree niter_m1 = fold_build2 (MINUS_EXPR, niter_type, niter->niter,
+ build_int_cst (niter_type, 1));
+ span = fold_build2 (MULT_EXPR, niter_type, niter_m1,
+ fold_convert (niter_type, niter->control.step));
+ niter->bound = fold_build2 (PLUS_EXPR, niter_type, span,
+ fold_convert (niter_type, niter->control.base));
+ niter->bound = fold_convert (type, niter->bound);
+ niter->cmp = NE_EXPR;
return true;
}
------------------------
While this code may generate complicated niter->bound if the step is not +-1.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (6 preceding siblings ...)
2021-08-27 13:27 ` guojiufu at gcc dot gnu.org
@ 2021-08-27 14:08 ` guojiufu at gcc dot gnu.org
2021-08-28 20:32 ` dcb314 at hotmail dot com
` (16 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-27 14:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #7 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
If step is +-1, or if the 'iv base' is constant, the 'bound' would be
calculated as const.
Otherwise, the 'bound' maybe something like: "(max - base) / step * step +
base". For this case, then runtime cost may need to calculate 'bound'.
I'm wondering if it is beneficial to support this kind of case.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (7 preceding siblings ...)
2021-08-27 14:08 ` guojiufu at gcc dot gnu.org
@ 2021-08-28 20:32 ` dcb314 at hotmail dot com
2021-08-28 20:41 ` dcb314 at hotmail dot com
` (15 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: dcb314 at hotmail dot com @ 2021-08-28 20:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
David Binderman <dcb314 at hotmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dcb314 at hotmail dot com
--- Comment #8 from David Binderman <dcb314 at hotmail dot com> ---
I see this problem also, with this reduced C code:
char **Gif_ClipImage_gfi_0;
int Gif_ClipImage_y, Gif_ClipImage_shift;
void Gif_ClipImage(void) {
for (; Gif_ClipImage_y >= Gif_ClipImage_shift; Gif_ClipImage_y++)
Gif_ClipImage_gfi_0[Gif_ClipImage_shift] =
Gif_ClipImage_gfi_0[Gif_ClipImage_y];
}
Flag -O3 -march=bdver2 required.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (8 preceding siblings ...)
2021-08-28 20:32 ` dcb314 at hotmail dot com
@ 2021-08-28 20:41 ` dcb314 at hotmail dot com
2021-08-30 3:26 ` guojiufu at gcc dot gnu.org
` (14 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: dcb314 at hotmail dot com @ 2021-08-28 20:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #9 from David Binderman <dcb314 at hotmail dot com> ---
This second source code generates a similar but different error message:
void dnslabel_vector_dnslabel_to_dnsname_namestack(int bottom) {
char **name;
int top;
while (bottom <= top) {
char label = *name++;
memcpy(0, label, label);
bottom--;
}
}
internal compiler error: in determine_exit_conditions, at
tree-ssa-loop-manip.c:1045
Some four lines different place in the compiler source code to the original.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (9 preceding siblings ...)
2021-08-28 20:41 ` dcb314 at hotmail dot com
@ 2021-08-30 3:26 ` guojiufu at gcc dot gnu.org
2021-09-02 9:22 ` pinskia at gcc dot gnu.org
` (13 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-30 3:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #10 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
Drafted a patch:
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 7af92d1c893..5c77c8b7d51 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -1482,7 +1482,7 @@ number_of_iterations_until_wrap (class loop *, tree type,
affine_iv *iv0,
affine_iv *iv1, class tree_niter_desc *niter)
{
tree niter_type = unsigned_type_for (type);
- tree step, num, assumptions, may_be_zero;
+ tree step, num, assumptions, may_be_zero, span;
wide_int high, low, max, min;
may_be_zero = fold_build2 (LE_EXPR, boolean_type_node, iv1->base,
iv0->base);
@@ -1513,6 +1513,8 @@ number_of_iterations_until_wrap (class loop *, tree type,
affine_iv *iv0,
low = wi::to_wide (iv0->base);
else
low = min;
+
+ niter->control = *iv1;
}
/* {base, -C} < n. */
else if (tree_int_cst_sign_bit (iv0->step) && integer_zerop (iv1->step))
@@ -1533,6 +1535,8 @@ number_of_iterations_until_wrap (class loop *, tree type,
affine_iv *iv0,
high = wi::to_wide (iv1->base);
else
high = max;
+
+ niter->control = *iv0;
}
else
return false;
@@ -1556,6 +1560,14 @@ number_of_iterations_until_wrap (class loop *, tree
type, affine_iv *iv0,
niter->assumptions, assumptions);
niter->control.no_overflow = false;
+ niter->control.base = fold_build2 (MINUS_EXPR, niter_type,
+ niter->control.base, niter->control.step);
+ span = fold_build2 (MULT_EXPR, niter_type, niter->niter,
+ fold_convert (niter_type, niter->control.step));
+ niter->bound = fold_build2 (PLUS_EXPR, niter_type, span,
+ fold_convert (niter_type, niter->control.base));
+ niter->bound = fold_convert (type, niter->bound);
+ niter->cmp = NE_EXPR;
return true;
}
This patch supports the case even the 'bound' is not a const.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (10 preceding siblings ...)
2021-08-30 3:26 ` guojiufu at gcc dot gnu.org
@ 2021-09-02 9:22 ` pinskia at gcc dot gnu.org
2021-09-22 13:03 ` cvs-commit at gcc dot gnu.org
` (12 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-09-02 9:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 102172 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (11 preceding siblings ...)
2021-09-02 9:22 ` pinskia at gcc dot gnu.org
@ 2021-09-22 13:03 ` cvs-commit at gcc dot gnu.org
2021-09-24 7:58 ` dcb314 at hotmail dot com
` (11 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-09-22 13:03 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jiu Fu Guo <guojiufu@gcc.gnu.org>:
https://gcc.gnu.org/g:3087d1b0a2cbe8880ccbbb67744726ff4e5d390e
commit r12-3791-g3087d1b0a2cbe8880ccbbb67744726ff4e5d390e
Author: Jiufu Guo <guojiufu@linux.ibm.com>
Date: Wed Sep 22 13:20:29 2021 +0800
Set bound/cmp/control for until wrap loop.
In patch r12-3136, niter->control, niter->bound and niter->cmp are
derived from number_of_iterations_lt. While for 'until wrap condition',
the calculation in number_of_iterations_lt is not align the requirements
on the define of them and requirements in determine_exit_conditions.
This patch calculate niter->control, niter->bound and niter->cmp in
number_of_iterations_until_wrap.
gcc/ChangeLog:
2021-09-22 Jiufu Guo <guojiufu@linux.ibm.com>
PR tree-optimization/102087
* tree-ssa-loop-niter.c (number_of_iterations_until_wrap):
Update bound/cmp/control for niter.
gcc/testsuite/ChangeLog:
2021-09-22 Jiufu Guo <guojiufu@linux.ibm.com>
* gcc.dg/pr102087.c: New test.
PR tree-optimization/102087
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (12 preceding siblings ...)
2021-09-22 13:03 ` cvs-commit at gcc dot gnu.org
@ 2021-09-24 7:58 ` dcb314 at hotmail dot com
2021-09-24 12:15 ` rguenth at gcc dot gnu.org
` (10 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: dcb314 at hotmail dot com @ 2021-09-24 7:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #13 from David Binderman <dcb314 at hotmail dot com> ---
The code in comment 8 still seems to fail:
$ /home/dcb/gcc/results/bin/gcc -c -O3 -w -march=bdver2 bug760.c
bug760.c: In function ‘Gif_ClipImage’:
bug760.c:3:1: error: type mismatch in binary expression
3 | Gif_ClipImage() {
| ^~~~~~~~~~~~~
unsigned int
int
int
_18 = Gif_ClipImage_gfi_1.0_1 + -1;
bug760.c:3:1: error: type mismatch in binary expression
unsigned int
int
int
_12 = Gif_ClipImage_gfi_1.0_1 + -1;
during GIMPLE pass: aprefetch
bug760.c:3:1: internal compiler error: verify_gimple failed
0xdac31a verify_gimple_in_cfg(function*, bool)
../../trunk.git/gcc/tree-cfg.c:5576
$ /home/dcb/gcc/results/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/home/dcb/gcc/results/bin/gcc
COLLECT_LTO_WRAPPER=/home/dcb/gcc/results.20210924/libexec/gcc/x86_64-pc-linux-g
nu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../trunk.git/configure --prefix=/home/dcb/gcc/results.20210924
--disable-bootstrap --disable-multilib --disable-werror
--with-pkgversion=29c928
57039d0a10 --enable-checking=df,extra,fold,rtl,yes
--enable-languages=c,c++,fort
ran
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.0 20210924 (experimental) (29c92857039d0a10)
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (13 preceding siblings ...)
2021-09-24 7:58 ` dcb314 at hotmail dot com
@ 2021-09-24 12:15 ` rguenth at gcc dot gnu.org
2021-09-24 17:47 ` dcb314 at hotmail dot com
` (9 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-09-24 12:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
Status|REOPENED |NEW
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (14 preceding siblings ...)
2021-09-24 12:15 ` rguenth at gcc dot gnu.org
@ 2021-09-24 17:47 ` dcb314 at hotmail dot com
2021-10-09 5:51 ` guojiufu at gcc dot gnu.org
` (8 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: dcb314 at hotmail dot com @ 2021-09-24 17:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #15 from David Binderman <dcb314 at hotmail dot com> ---
Since this bug depends on the setting of -march,
I tried out all the possible legal settings of that value.
alderlake
amdfam10
during GIMPLE pass: aprefetch
athlon-fx
during GIMPLE pass: aprefetch
athlon64
during GIMPLE pass: aprefetch
athlon64-sse3
during GIMPLE pass: aprefetch
atom
barcelona
during GIMPLE pass: aprefetch
bdver1
during GIMPLE pass: aprefetch
bdver2
during GIMPLE pass: aprefetch
bdver3
during GIMPLE pass: aprefetch
bdver4
during GIMPLE pass: aprefetch
bonnell
broadwell
btver1
during GIMPLE pass: aprefetch
btver2
during GIMPLE pass: aprefetch
cannonlake
cascadelake
cooperlake
core-avx-i
core-avx2
core2
corei7
corei7-avx
eden-x2
during GIMPLE pass: aprefetch
eden-x4
during GIMPLE pass: aprefetch
goldmont
goldmont-plus
haswell
celake-client
icelake-server
ivybridge
k8
during GIMPLE pass: aprefetch
k8-sse3
during GIMPLE pass: aprefetch
knl
knm
nano
during GIMPLE pass: aprefetch
nano-1000
during GIMPLE pass: aprefetch
nano-2000
during GIMPLE pass: aprefetch
nano-3000
during GIMPLE pass: aprefetch
nano-x2
during GIMPLE pass: aprefetch
nano-x4
during GIMPLE pass: aprefetch
native
during GIMPLE pass: aprefetch
nehalem
nocona
opteron
during GIMPLE pass: aprefetch
opteron-sse3
during GIMPLE pass: aprefetch
rocketlake
sandybridge
sapphirerapids
silvermont
skylake
skylake-avx512
slm
tigerlake
tremont
westmere
x86-64
x86-64-v2
x86-64-v3
x86-64-v4
znver1
znver2
znver3
I generated this list with this command:
$ for i in `cat ~/arch.list`; do echo $i; /home/dcb/gcc/results/bin/gcc -c -O3
-march=$i bug760.c 2>&1 | fgrep GIMPLE ; done
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (15 preceding siblings ...)
2021-09-24 17:47 ` dcb314 at hotmail dot com
@ 2021-10-09 5:51 ` guojiufu at gcc dot gnu.org
2021-12-06 15:42 ` asolokha at gmx dot com
` (7 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-10-09 5:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #16 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
Thanks David, Richard,
~/gcc/install/gcc-mainline-base-debug/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/home/guojiufu/gcc/install/gcc-mainline-base-debug/bin/gcc
COLLECT_LTO_WRAPPER=/home/guojiufu/gcc/install/gcc-mainline-base-debug/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/guojiufu/gcc/gcc-mainline-base/configure
--prefix=/home/guojiufu/gcc/install/gcc-mainline-base-debug --disable-bootstrap
--disable-multilib --disable-werror --with-pkgversion=29c92857039d0a10
--enable-checking=df,extra,fold,rtl,yes --enable-languages=c,c++,fortran :
(reconfigured) /home/guojiufu/gcc/gcc-mainline-base/configure
--prefix=/home/guojiufu/gcc/install/gcc-mainline-base-debug --disable-bootstrap
--disable-multilib --disable-werror --with-pkgversion=29c92857039d0a10
--enable-checking=df,extra,fold,rtl,yes --enable-languages=c,c++,fortran,lto
--no-create --no-recursion
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210922 (experimental) (29c92857039d0a10)
~/gcc/install/gcc-mainline-base-debug/bin/gcc -c -O3 -w ~/temp/t.c
-march=opteron
~/gcc/install/gcc-mainline-base-debug/bin/gcc -c -O3 -w -march=bdver2
~/temp/t.c
cat ~/temp/t.c
char **Gif_ClipImage_gfi_0;
int Gif_ClipImage_y, Gif_ClipImage_shift;
void Gif_ClipImage(void) {
for (; Gif_ClipImage_y >= Gif_ClipImage_shift; Gif_ClipImage_y++)
Gif_ClipImage_gfi_0[Gif_ClipImage_shift] =
Gif_ClipImage_gfi_0[Gif_ClipImage_y];
}
I build both 3087d1b0a2c and the latest trunk, the case could pass.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (16 preceding siblings ...)
2021-10-09 5:51 ` guojiufu at gcc dot gnu.org
@ 2021-12-06 15:42 ` asolokha at gmx dot com
2021-12-06 17:43 ` dcb314 at hotmail dot com
` (6 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: asolokha at gmx dot com @ 2021-12-06 15:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #17 from Arseny Solokha <asolokha at gmx dot com> ---
(In reply to David Binderman from comment #13)
> The code in comment 8 still seems to fail:
It might make sense to file a new PR for that, I guess.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (17 preceding siblings ...)
2021-12-06 15:42 ` asolokha at gmx dot com
@ 2021-12-06 17:43 ` dcb314 at hotmail dot com
2021-12-16 1:47 ` guojiufu at gcc dot gnu.org
` (5 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: dcb314 at hotmail dot com @ 2021-12-06 17:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #18 from David Binderman <dcb314 at hotmail dot com> ---
(In reply to Arseny Solokha from comment #17)
> (In reply to David Binderman from comment #13)
> > The code in comment 8 still seems to fail:
>
> It might make sense to file a new PR for that, I guess.
I checked, and the code in comment 8 works fine, since sometime
before 20211105.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (18 preceding siblings ...)
2021-12-06 17:43 ` dcb314 at hotmail dot com
@ 2021-12-16 1:47 ` guojiufu at gcc dot gnu.org
2022-01-18 9:27 ` dcb314 at hotmail dot com
` (4 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-12-16 1:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
Jiu Fu Guo <guojiufu at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|NEW |RESOLVED
--- Comment #19 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
So, mark this as resolved.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (19 preceding siblings ...)
2021-12-16 1:47 ` guojiufu at gcc dot gnu.org
@ 2022-01-18 9:27 ` dcb314 at hotmail dot com
2022-01-18 9:37 ` marxin at gcc dot gnu.org
` (3 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: dcb314 at hotmail dot com @ 2022-01-18 9:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #20 from David Binderman <dcb314 at hotmail dot com> ---
This code still seems broken:
**Gif_ClipImage_gfi_0;
Gif_ClipImage_gfi_1, Gif_ClipImage_y, Gif_ClipImage_shift;
Gif_ClipImage() {
Gif_ClipImage_y = Gif_ClipImage_gfi_1 - 1;
for (; Gif_ClipImage_y >= Gif_ClipImage_shift; Gif_ClipImage_y++)
Gif_ClipImage_gfi_0[Gif_ClipImage_shift] =
Gif_ClipImage_gfi_0[Gif_ClipImage_y];
}
bug760.c: In function ‘Gif_ClipImage’:
bug760.c:3:1: error: type mismatch in binary expression
3 | Gif_ClipImage() {
| ^~~~~~~~~~~~~
unsigned int
int
int
_18 = Gif_ClipImage_gfi_1.0_1 + -1;
bug760.c:3:1: error: type mismatch in binary expression
unsigned int
int
int
_12 = Gif_ClipImage_gfi_1.0_1 + -1;
during GIMPLE pass: aprefetch
bug760.c:3:1: internal compiler error: verify_gimple failed
0xde2f5a verify_gimple_in_cfg(function*, bool)
Flag -O3 -march=bdver2 required.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (20 preceding siblings ...)
2022-01-18 9:27 ` dcb314 at hotmail dot com
@ 2022-01-18 9:37 ` marxin at gcc dot gnu.org
2022-01-19 9:32 ` guojiufu at gcc dot gnu.org
` (2 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-01-18 9:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |---
--- Comment #21 from Martin Liška <marxin at gcc dot gnu.org> ---
> _12 = Gif_ClipImage_gfi_1.0_1 + -1;
> during GIMPLE pass: aprefetch
> bug760.c:3:1: internal compiler error: verify_gimple failed
> 0xde2f5a verify_gimple_in_cfg(function*, bool)
>
> Flag -O3 -march=bdver2 required.
Confirmed.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (21 preceding siblings ...)
2022-01-18 9:37 ` marxin at gcc dot gnu.org
@ 2022-01-19 9:32 ` guojiufu at gcc dot gnu.org
2022-01-24 9:07 ` cvs-commit at gcc dot gnu.org
2022-02-15 12:58 ` rguenth at gcc dot gnu.org
24 siblings, 0 replies; 26+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2022-01-19 9:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #22 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #21)
> > _12 = Gif_ClipImage_gfi_1.0_1 + -1;
> > during GIMPLE pass: aprefetch
> > bug760.c:3:1: internal compiler error: verify_gimple failed
> > 0xde2f5a verify_gimple_in_cfg(function*, bool)
> >
> > Flag -O3 -march=bdver2 required.
>
> Confirmed.
Hi David and Martin, Thanks. I can reproduce the failure.
Just drafting a patch and will send it out for review after regtest.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (22 preceding siblings ...)
2022-01-19 9:32 ` guojiufu at gcc dot gnu.org
@ 2022-01-24 9:07 ` cvs-commit at gcc dot gnu.org
2022-02-15 12:58 ` rguenth at gcc dot gnu.org
24 siblings, 0 replies; 26+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-01-24 9:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
--- Comment #23 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jiu Fu Guo <guojiufu@gcc.gnu.org>:
https://gcc.gnu.org/g:634de54f9c421b7069865d0d7365ad97412f34bd
commit r12-6834-g634de54f9c421b7069865d0d7365ad97412f34bd
Author: Jiufu Guo <guojiufu@linux.ibm.com>
Date: Fri Jan 21 17:03:50 2022 +0800
Update the type of control.base after changed
This patch correct the type of niter->control.base, when it is updated
as a PLUS expr.
During build PLUS expr, the result type should align with the type of
the operands.
PR tree-optimization/102087
gcc/ChangeLog:
* tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
Correct PLUS result type.
gcc/testsuite/ChangeLog:
* gcc.dg/pr102087_1.c: New test.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug tree-optimization/102087] [12 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 since r12-3136-g3673dcf6d6baeb67
2021-08-26 20:35 [Bug tree-optimization/102087] New: ICE on valid code at -O3 on x86_64-linux-gnu: in determine_exit_conditions, at tree-ssa-loop-manip.c:1049 zhendong.su at inf dot ethz.ch
` (23 preceding siblings ...)
2022-01-24 9:07 ` cvs-commit at gcc dot gnu.org
@ 2022-02-15 12:58 ` rguenth at gcc dot gnu.org
24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-02-15 12:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102087
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|REOPENED |RESOLVED
--- Comment #24 from Richard Biener <rguenth at gcc dot gnu.org> ---
Assuming fixed again.
^ permalink raw reply [flat|nested] 26+ messages in thread