public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE
@ 2020-12-14  8:16 acoplan at gcc dot gnu.org
  2021-01-04 14:33 ` [Bug tree-optimization/98268] " rguenth at gcc dot gnu.org
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: acoplan at gcc dot gnu.org @ 2020-12-14  8:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

            Bug ID: 98268
           Summary: ICE: verify_gimple failed with LTO and SVE
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

The following fails on the head of the GCC 10 branch (reproduced at
g:907525c3063e6ec5cf02790a5d5a37053c731401 with both an aarch64-elf cross and
natively on aarch64-linux-gnu):

$ cat a.c
short d, e;
void f(char, long*);
int main() {
  long x;
  f(-114, &x);
  return d == e;
}
$ cat b.c
extern short d[], e[];
void f(char a, long *b) {
  for (int c = 0; c < a - 12; c++) {
    d[c] = b[c];
    e[c] = 0;
  }
}
$ aarch64-elf-gcc a.c b.c -flto -O1 -march=armv8.2-a+sve -ftree-vectorize
-msve-vector-bits=128
a.c: In function 'main':
a.c:3:5: error: constant not recomputed when 'ADDR_EXPR' changed
    3 | int main() {
      |     ^
_59 = &MEM <vector(2) short int> [(short int *)&d + 256B];
a.c:3:5: error: constant not recomputed when 'ADDR_EXPR' changed
_64 = &MEM <vector(2) short int> [(short int *)&e + 256B];
during GIMPLE pass: dom
a.c:3:5: internal compiler error: verify_gimple failed
0xcbba04 verify_gimple_in_cfg(function*, bool)
        /home/alecop01/toolchain/src/gcc/gcc/tree-cfg.c:5492
0xb6dca8 execute_function_todo
        /home/alecop01/toolchain/src/gcc/gcc/passes.c:1985
0xb6dea2 do_per_function
        /home/alecop01/toolchain/src/gcc/gcc/passes.c:1640
0xb6e03d execute_todo
        /home/alecop01/toolchain/src/gcc/gcc/passes.c:2039
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: aarch64-elf-gcc returned 1 exit status
compilation terminated.
/home/alecop01/toolchain/build-aarch64-elf/install/lib/gcc/aarch64-elf/10.2.1/../../../../aarch64-elf/bin/ld:
error: lto-wrapper failed
collect2: error: ld returned 1 exit status

I haven't been able to reproduce the issue on trunk, however.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
@ 2021-01-04 14:33 ` rguenth at gcc dot gnu.org
  2021-01-04 15:01 ` acoplan at gcc dot gnu.org
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-01-04 14:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|11.0                        |10.2.1
           Keywords|                            |ice-checking

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
trunk has FRE before late DOM possibly hiding the issue - you can try
-fdisable-tree-fre4

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
  2021-01-04 14:33 ` [Bug tree-optimization/98268] " rguenth at gcc dot gnu.org
@ 2021-01-04 15:01 ` acoplan at gcc dot gnu.org
  2021-01-18 10:07 ` acoplan at gcc dot gnu.org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-01-04 15:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

--- Comment #2 from Alex Coplan <acoplan at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #1)
> trunk has FRE before late DOM possibly hiding the issue - you can try
> -fdisable-tree-fre4

I don't see the ICE on trunk with that option, FWIW. I wonder if a bisect might
be useful here?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
  2021-01-04 14:33 ` [Bug tree-optimization/98268] " rguenth at gcc dot gnu.org
  2021-01-04 15:01 ` acoplan at gcc dot gnu.org
@ 2021-01-18 10:07 ` acoplan at gcc dot gnu.org
  2021-01-18 10:42 ` [Bug tree-optimization/98268] [10 Regression] " ktkachov at gcc dot gnu.org
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-01-18 10:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

--- Comment #3 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Adding --param=aarch64-autovec-preference=3 I can reproduce the ICE on trunk.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-01-18 10:07 ` acoplan at gcc dot gnu.org
@ 2021-01-18 10:42 ` ktkachov at gcc dot gnu.org
  2021-01-18 10:47 ` acoplan at gcc dot gnu.org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2021-01-18 10:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
           Priority|P3                          |P2
   Target Milestone|---                         |10.3
                 CC|                            |ktkachov at gcc dot gnu.org
   Last reconfirmed|                            |2021-01-18
      Known to work|                            |9.3.1
      Known to fail|                            |10.2.1
     Ever confirmed|0                           |1
            Summary|ICE: verify_gimple failed   |[10 Regression] ICE:
                   |with LTO and SVE            |verify_gimple failed with
                   |                            |LTO and SVE

--- Comment #4 from ktkachov at gcc dot gnu.org ---
I can't reproduce on trunk even with the param, but it does trigger on GCC 10
branch.
Does it need some extra checking in the configuration?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-01-18 10:42 ` [Bug tree-optimization/98268] [10 Regression] " ktkachov at gcc dot gnu.org
@ 2021-01-18 10:47 ` acoplan at gcc dot gnu.org
  2021-01-18 10:49 ` [Bug tree-optimization/98268] [10/11 " ktkachov at gcc dot gnu.org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-01-18 10:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

--- Comment #5 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Ah, sorry, I hit this with a VLA compile on trunk, so the full command line is:

$ aarch64-elf-gcc a.c b.c -flto -O1 -ftree-vectorize -march=armv8.2-a+sve
--param=aarch64-autovec-preference=3

with the above source files. It doesn't ICE with the -msve-vector-bits=128 flag
as above.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10/11 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-01-18 10:47 ` acoplan at gcc dot gnu.org
@ 2021-01-18 10:49 ` ktkachov at gcc dot gnu.org
  2021-03-30 17:11 ` rsandifo at gcc dot gnu.org
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2021-01-18 10:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[10 Regression] ICE:        |[10/11 Regression] ICE:
                   |verify_gimple failed with   |verify_gimple failed with
                   |LTO and SVE                 |LTO and SVE
      Known to fail|                            |11.0

--- Comment #6 from ktkachov at gcc dot gnu.org ---
(In reply to Alex Coplan from comment #5)
> Ah, sorry, I hit this with a VLA compile on trunk, so the full command line
> is:
> 
> $ aarch64-elf-gcc a.c b.c -flto -O1 -ftree-vectorize -march=armv8.2-a+sve
> --param=aarch64-autovec-preference=3
> 
> with the above source files. It doesn't ICE with the -msve-vector-bits=128
> flag as above.

Indeed, reproduced now, thanks.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10/11 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-01-18 10:49 ` [Bug tree-optimization/98268] [10/11 " ktkachov at gcc dot gnu.org
@ 2021-03-30 17:11 ` rsandifo at gcc dot gnu.org
  2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-03-30 17:11 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rsandifo at gcc dot gnu.org
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rsandifo at gcc dot gnu.org

--- Comment #7 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Mine.

Seems that maybe_canonicalize_mem_ref_addr should call
recompute_tree_invariant_for_addr_expr when replacing
&TARGET_MEM_REF (which is never treated as invariant)
with &MEM_REF (which can be invariant).

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10/11 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-03-30 17:11 ` rsandifo at gcc dot gnu.org
@ 2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
  2021-03-31 20:36 ` [Bug tree-optimization/98268] [10 " rsandifo at gcc dot gnu.org
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-03-31 18:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Sandiford <rsandifo@gcc.gnu.org>:

https://gcc.gnu.org/g:c778968339afd140380a46edbade054667c7dce2

commit r11-7936-gc778968339afd140380a46edbade054667c7dce2
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Mar 31 19:34:01 2021 +0100

    gimple-fold: Recompute ADDR_EXPR flags after folding a TMR [PR98268]

    The gimple verifier picked up that an ADDR_EXPR of a MEM_REF was not
    marked TREE_CONSTANT even though the address was in fact invariant.
    This came from folding a &TARGET_MEM_REF with constant operands to
    a &MEM_REF; &TARGET_MEM_REF is never treated as TREE_CONSTANT
    but &MEM_REF can be.

    gcc/
            PR tree-optimization/98268
            * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
            recompute_tree_invariant_for_addr_expr after successfully
            folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.

    gcc/testsuite/
            PR tree-optimization/98268
            * gcc.target/aarch64/sve/pr98268-1.c: New test.
            * gcc.target/aarch64/sve/pr98268-2.c: Likewise.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
@ 2021-03-31 20:36 ` rsandifo at gcc dot gnu.org
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-03-31 20:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[10/11 Regression] ICE:     |[10 Regression] ICE:
                   |verify_gimple failed with   |verify_gimple failed with
                   |LTO and SVE                 |LTO and SVE

--- Comment #9 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Fixed on trunk so far.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-03-31 20:36 ` [Bug tree-optimization/98268] [10 " rsandifo at gcc dot gnu.org
@ 2021-04-08 12:02 ` rguenth at gcc dot gnu.org
  2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
  2021-04-23  9:12 ` rsandifo at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-08 12:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.3                        |10.4

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10.3 is being released, retargeting bugs to GCC 10.4.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
@ 2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
  2021-04-23  9:12 ` rsandifo at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-23  9:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Richard Sandiford
<rsandifo@gcc.gnu.org>:

https://gcc.gnu.org/g:18a190c3ee32548de3888b7a64f701999893727b

commit r10-9750-g18a190c3ee32548de3888b7a64f701999893727b
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Apr 23 10:09:39 2021 +0100

    gimple-fold: Recompute ADDR_EXPR flags after folding a TMR [PR98268]

    The gimple verifier picked up that an ADDR_EXPR of a MEM_REF was not
    marked TREE_CONSTANT even though the address was in fact invariant.
    This came from folding a &TARGET_MEM_REF with constant operands to
    a &MEM_REF; &TARGET_MEM_REF is never treated as TREE_CONSTANT
    but &MEM_REF can be.

    gcc/
            PR tree-optimization/98268
            * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
            recompute_tree_invariant_for_addr_expr after successfully
            folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.

    gcc/testsuite/
            PR tree-optimization/98268
            * gcc.target/aarch64/sve/pr98268-1.c: New test.
            * gcc.target/aarch64/sve/pr98268-2.c: Likewise.

    (cherry picked from commit c778968339afd140380a46edbade054667c7dce2)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug tree-optimization/98268] [10 Regression] ICE: verify_gimple failed with LTO and SVE
  2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
@ 2021-04-23  9:12 ` rsandifo at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-04-23  9:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98268

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #12 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Fixed.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2021-04-23  9:12 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-14  8:16 [Bug tree-optimization/98268] New: ICE: verify_gimple failed with LTO and SVE acoplan at gcc dot gnu.org
2021-01-04 14:33 ` [Bug tree-optimization/98268] " rguenth at gcc dot gnu.org
2021-01-04 15:01 ` acoplan at gcc dot gnu.org
2021-01-18 10:07 ` acoplan at gcc dot gnu.org
2021-01-18 10:42 ` [Bug tree-optimization/98268] [10 Regression] " ktkachov at gcc dot gnu.org
2021-01-18 10:47 ` acoplan at gcc dot gnu.org
2021-01-18 10:49 ` [Bug tree-optimization/98268] [10/11 " ktkachov at gcc dot gnu.org
2021-03-30 17:11 ` rsandifo at gcc dot gnu.org
2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
2021-03-31 20:36 ` [Bug tree-optimization/98268] [10 " rsandifo at gcc dot gnu.org
2021-04-08 12:02 ` rguenth at gcc dot gnu.org
2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
2021-04-23  9:12 ` rsandifo at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).