[Bug target/119474] New: GCN 'libgomp.oacc-c++/pr96835-1.C' ICE 'during GIMPLE pass: ivopts'
tschwinge at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Mar 26 08:24:38 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119474
Bug ID: 119474
Summary: GCN 'libgomp.oacc-c++/pr96835-1.C' ICE 'during GIMPLE
pass: ivopts'
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: openacc
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: tschwinge at gcc dot gnu.org
CC: ams at gcc dot gnu.org, burnus at gcc dot gnu.org,
jakub at gcc dot gnu.org, rguenth at gcc dot gnu.org,
tschwinge at gcc dot gnu.org
Depends on: 96835
Target Milestone: ---
Target: GCN
+++ This bug was initially created as a clone of Bug #96835 +++
(In reply to myself from comment PR96835#10)
> The test cases I've just pushed: 'libgomp.c++/pr96835-1{,-O0}.C',
> 'libgomp.oacc-c++/pr96835-1.C' now behave as expected, with one exception.
> Could you: Andrew, Richard please have a look why
> 'libgomp.oacc-c++/pr96835-1.C' for '-foffload=amdgcn-amdhsa', '-O2' is
> running into what looks like a(nother) GCN vectorizer vs. address spaces
> ICE? (Your favourite ones, I know!)
(Or, maybe, the appearance of 'vector' here actually is due to its use in the
user code? But OpenACC handling and its use of address spaces appears
relevant?)
> [...]/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C: In function 'main._omp_fn.0':
> [...]/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:36:11: error: incompatible types in 'PHI' argument 1
> vector(4) int *
>
> <address-space-4> struct vector *
>
> vectp_v1.3_3 = PHI <vectp_v1.3_47(5), &v1(2)>
> during GIMPLE pass: vect
> [...]/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:36:11: internal compiler error: verify_gimple failed
> 0x215b066 internal_error(char const*, ...)
> [...]/source-gcc/gcc/diagnostic-global-context.cc:517
> 0x111d22e verify_gimple_in_cfg(function*, bool, bool)
> [...]/source-gcc/gcc/tree-cfg.cc:5683
> 0xfb40d0 execute_function_todo
> [...]/source-gcc/gcc/passes.cc:2101
> 0xfb464b execute_todo
> [...]/source-gcc/gcc/passes.cc:2155
> [...]
> gcn mkoffload: fatal error: [...]/install/offload-amdgcn-amdhsa/bin//x86_64-pc-linux-gnu-accel-amdgcn-amdhsa-gcc returned 1 exit status
I noticed that I'm able to reproduce this ICE also without the offloading
machinery, by directly invoking the GCN target compiler with '-O2 -fopenacc':
$ build-gcc-offload-amdgcn-amdhsa/gcc/xg++
-Bbuild-gcc-offload-amdgcn-amdhsa/gcc/
source-gcc/libgomp/testsuite/libgomp.oacc-c++/pr96835-1.C -S -O2 -fopenacc
In file included from
source-gcc/libgomp/testsuite/libgomp.oacc-c++/pr96835-1.C:5:
source-gcc/libgomp/testsuite/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:
In function ‘main._omp_fn.0’:
source-gcc/libgomp/testsuite/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:36:11:
error: incompatible types in ‘PHI’ argument 1
36 | #pragma acc serial copyout(res)
| ^~~
vector(64) int *
<address-space-4> struct vector *
vectp_v1.13_29 = PHI <vectp_v1.13_12(5), &v1(2)>
during GIMPLE pass: vect
source-gcc/libgomp/testsuite/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:36:11:
internal compiler error: verify_gimple failed
[...]
..., or also with '-O1 -fopenacc':
$ build-gcc-offload-amdgcn-amdhsa/gcc/xg++
-Bbuild-gcc-offload-amdgcn-amdhsa/gcc/
source-gcc/libgomp/testsuite/libgomp.oacc-c++/pr96835-1.C -S -O1 -fopenacc
In file included from
source-gcc/libgomp/testsuite/libgomp.oacc-c++/pr96835-1.C:5:
source-gcc/libgomp/testsuite/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:
In function ‘main._omp_fn.0’:
source-gcc/libgomp/testsuite/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:36:11:
error: invalid types in nop conversion
36 | #pragma acc serial copyout(res)
| ^~~
unsigned long
<address-space-4> struct vector *
ivtmp.20_40 = (unsigned long) &v1;
during GIMPLE pass: ivopts
source-gcc/libgomp/testsuite/libgomp.oacc-c++/../libgomp.c++/pr96835-1.C:36:11:
internal compiler error: verify_gimple failed
[...]
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96835
[Bug 96835] Constructor in offload template class
More information about the Gcc-bugs
mailing list