https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94233
Bug ID: 94233
Summary: [OpenMP] ICE in lto1 for AMDGCN offloading: in
dr_analyze_innermost, at tree-data-ref.c:925 for
gcc-mainline/libgomp/testsuite/libgomp.c/target-link-1
.c
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, openmp
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
Compiling gcc-mainline/libgomp/testsuite/libgomp.c/target-link-1.c with
"-fopenmp -O3" (instead of default -O2) fails as follows.
[I also did see "libgomp: Cannot map target variables (size mismatch)" at run
time for -O2.]
The ICE is in the offloading-target compiler lto1:
/net/build5-trusty-cs/scratch/tburnus/fsf.mainline.x86_64-linux-gnu-amdgcn/install/libexec/gcc/x86_64-none-linux-gnu/10.0.1/accel/amdgcn-amdhsa/lto1
-quiet -dumpbase ccFoh0bA.o -m64 -mgomp -mlocal-symbol-id=/tmp/ccFoh0bA.o
-march=fiji -auxbase-strip /tmp/ccxUIhxG.mkoffload.1.s -g -O3 -version
-fno-openacc -fno-pie -foffload-abi=lp64 -fopenmp -o
/tmp/ccxUIhxG.mkoffload.1.s @/tmp/cciArjCH
GNU GIMPLE (GCC) version 10.0.1 20200319 (experimental) (amdgcn-amdhsa)
compiled by GNU C version 8.3.1 20190416, GMP version 6.1.2, MPFR
version 4.0.2-p1, MPC version 1.1.0, isl version isl-0.20-GMP
...
src/gcc-mainline/libgomp/testsuite/libgomp.c/target-link-1.c: In function
'main._omp_fn.0':
src/gcc-mainline/libgomp/testsuite/libgomp.c/target-link-1.c:38:11: internal
compiler error: in dr_analyze_innermost, at tree-data-ref.c:925
38 | #pragma omp target map (to: a, b, c, d) map (from: res)
| ^
0x7b8c81 dr_analyze_innermost(innermost_loop_behavior*, tree_node*, loop*,
gimple const*)
/net/build5-trusty-cs/scratch/tburnus/fsf.mainline.x86_64-linux-gnu-amdgcn/src/gcc-mainline/gcc/tree-data-ref.c:924
0x13da92b create_data_ref(edge_def*, loop*, tree_node*, gimple*, bool, bool)
/net/build5-trusty-cs/scratch/tburnus/fsf.mainline.x86_64-linux-gnu-amdgcn/src/gcc-mainline/gcc/tree-data-ref.c:1255
0x13dacb7 find_data_references_in_stmt(loop*, gimple*, vec<data_reference*,
va_heap, vl_ptr>*)
/net/build5-trusty-cs/scratch/tburnus/fsf.mainline.x86_64-linux-gnu-amdgcn/src/gcc-mainline/gcc/tree-data-ref.c:5603
0x13f3093 vect_find_stmt_data_reference(loop*, gimple*, vec<data_reference*,
va_heap, vl_ptr>*)
/net/build5-trusty-cs/scratch/tburnus/fsf.mainline.x86_64-linux-gnu-amdgcn/src/gcc-mainline/gcc/tree-vect-data-refs.c:4064
0xf1f2c6 vect_slp_bb(basic_block_def*)
/net/build5-trusty-cs/scratch/tburnus/fsf.mainline.x86_64-linux-gnu-amdgcn/src/gcc-mainline/gcc/tree-vect-slp.c:3499
0xf2257f execute
/net/build5-trusty-cs/scratch/tburnus/fsf.mainline.x86_64-linux-gnu-amdgcn/src/gcc-mainline/gcc/tree-vectorizer.c:1321