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.