[Bug lto/71535] ICE in LTO1 with -fopenmp offloading

2019-04-26 Thread josem at udel dot edu
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

2019-04-26 Thread josem at udel dot edu
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

2016-06-29 Thread tschwinge at gcc dot gnu.org
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

2016-06-15 Thread amonakov at gcc dot gnu.org
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 ();
}