[Bug lto/71535] ICE in LTO1 with -fopenmp offloading
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71535 --- Comment #4 from Jose Manuel Monsalve Diaz --- Same for Hotspot of the same benchmarks suite
[Bug lto/71535] ICE in LTO1 with -fopenmp offloading
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71535 Jose Manuel Monsalve Diaz changed: What|Removed |Added CC||josem at udel dot edu --- Comment #3 from Jose Manuel Monsalve Diaz --- This also seems to happen when compiling the LUD version of the rodinia_3.1 benchmarks found here: http://lava.cs.virginia.edu/Rodinia/download_links.htm If you download them and try: cd openmp/lud/ g++ -foffload="-lm" -lm -fopenmp -DOMP_OFFLOAD omp/lud_omp.c omp/lud.c common/common.c -o lud -I./common/ You get this: common/common.c: In function ‘func_ret_t lud_verify(float*, float*, int)’: common/common.c:187:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ lto1: internal compiler error: in input_overwrite_node, at lto-cgraph.c:1208 0x85a221 input_overwrite_node ../../gcc8.2/gcc/lto-cgraph.c:1206 0x85a221 input_node ../../gcc8.2/gcc/lto-cgraph.c:1303 0x85a221 input_cgraph_1 ../../gcc8.2/gcc/lto-cgraph.c:1552 0x85a221 input_symtab() ../../gcc8.2/gcc/lto-cgraph.c:1860 0x5b9a91 read_cgraph_and_symbols ../../gcc8.2/gcc/lto/lto.c:2897 0x5b9a91 lto_main() ../../gcc8.2/gcc/lto/lto.c:3362 Please submit a full bug report,
[Bug lto/71535] ICE in LTO1 with -fopenmp offloading
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71535 Thomas Schwinge changed: What|Removed |Added CC||tschwinge at gcc dot gnu.org --- Comment #2 from Thomas Schwinge --- The is the OpenMP variant of OpenACC's PR71499.
[Bug lto/71535] ICE in LTO1 with -fopenmp offloading
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71535 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org, ||jakub at gcc dot gnu.org --- Comment #1 from Alexander Monakov --- I wonder if the testcase has invalid code. On one hand, without "omp declare target" on 'Process', the compiler does not need to emit accel code for it, so it would fail to link at mkoffload/link time. On the other hand, the intention seems to be to allow code with references to standard functions (at least libm/libc), even though those functions don't have "omp declare target" on their external declarations. And, it doesn't look like that the OpenMP 4.5 spec explicitly makes this invalid. For variables, 2.10.4 mentions that "A variable referenced in a target region but not the target construct that is not declared in the target region must appear in a declare target directive." In any case, the compiler should fail more gracefully than ICE. Minimal testcase is just void foo () { asm (""); } int main () { #pragma omp target foo (); }