https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81430
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-07-16
Ever confirmed|0 |1
--- Comment #3 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
Per my testing, r249070 is causing the regressions listed below. Looking at a
few cases, we're running into:
[...]/libgomp.oacc-c-c++-common/vector-type-1.c: In function
'main._omp_fn.0':
[...]/libgomp.oacc-c-c++-common/vector-type-1.c:7:9: sorry, unimplemented:
target cannot support label values
#pragma acc parallel copy(vi)
^
[...]/libgomp.oacc-c-c++-common/vector-type-1.c:7:9: sorry, unimplemented:
indirect jumps are not available on this target
Program received signal SIGSEGV, Segmentation fault.
fix_crossing_unconditional_branches () at [...]/gcc/bb-reorder.c:2215
2215 JUMP_LABEL (jump_insn) = label;
(gdb) bt
#0 fix_crossing_unconditional_branches () at [...]/gcc/bb-reorder.c:2215
#1 (anonymous namespace)::pass_partition_blocks::execute (this=<optimized
out>, fun=0x7ffff6956000) at [...]/gcc/bb-reorder.c:2910
#2 0x000000000098364d in execute_one_pass (pass=pass@entry=0x1725070) at
[...]/gcc/passes.c:2491
#3 0x0000000000983f18 in execute_pass_list_1 (pass=0x1725070) at
[...]/gcc/passes.c:2580
#4 0x0000000000983f2a in execute_pass_list_1 (pass=0x1724470) at
[...]/gcc/passes.c:2581
#5 0x0000000000983f75 in execute_pass_list (fn=<optimized out>,
pass=<optimized out>) at [...]/gcc/passes.c:2591
#6 0x0000000000635217 in cgraph_node::expand
(this=this@entry=0x7ffff6952000) at [...]/gcc/cgraphunit.c:2050
#7 0x0000000000636bbc in expand_all_functions () at
[...]/gcc/cgraphunit.c:2186
#8 symbol_table::compile (this=0x7ffff6888000) at
[...]/gcc/cgraphunit.c:2543
#9 0x00000000006370a6 in symbol_table::compile (this=<optimized out>) at
[...]/gcc/cgraphunit.c:2576
#10 0x0000000000593462 in lto_main () at [...]/gcc/lto/lto.c:3334
#11 0x0000000000a5ad8f in compile_file () at [...]/gcc/toplev.c:468
#12 0x0000000000560e82 in do_compile () at [...]/gcc/toplev.c:2021
#13 toplev::main (this=this@entry=0x7fffffffcfb0, argc=argc@entry=19,
argv=0x16fc7d0, argv@entry=0x7fffffffd0b8) at [...]/gcc/toplev.c:2155
#14 0x00000000005632f7 in main (argc=19, argv=0x7fffffffd0b8) at
[...]/gcc/main.c:39
Tom's patch (plus '#include "common/common-target.h"') does cure this.
List of regressions:
[-PASS:-]{+FAIL: libgomp.c/examples-4/async_target-2.c (internal compiler
error)+}
{+FAIL:+} libgomp.c/examples-4/async_target-2.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/examples-4/async_target-2.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/examples-4/target-5.c (internal compiler
error)+}
{+FAIL:+} libgomp.c/examples-4/target-5.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/examples-4/target-5.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/examples-4/target_data-6.c (internal compiler
error)+}
{+FAIL:+} libgomp.c/examples-4/target_data-6.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/examples-4/target_data-6.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/examples-4/target_data-7.c (internal compiler
error)+}
{+FAIL:+} libgomp.c/examples-4/target_data-7.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/examples-4/target_data-7.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/target-3.c (internal compiler error)+}
{+FAIL:+} libgomp.c/target-3.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/target-3.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/target-4.c (internal compiler error)+}
{+FAIL:+} libgomp.c/target-4.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/target-4.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/target-5.c (internal compiler error)+}
{+FAIL:+} libgomp.c/target-5.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/target-5.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/target-6.c (internal compiler error)+}
{+FAIL:+} libgomp.c/target-6.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/target-6.c [-execution
test-]{+compilation failed to produce executable+}
[-PASS:-]{+FAIL: libgomp.c/target-7.c (internal compiler error)+}
{+FAIL:+} libgomp.c/target-7.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/target-7.c [-execution
test-]{+compilation failed to produce executable+}
{+FAIL: libgomp.c/thread-limit-2.c (internal compiler error)+}
FAIL: libgomp.c/thread-limit-2.c (test for excess errors)
UNRESOLVED: libgomp.c/thread-limit-2.c compilation failed to produce
executable
[-PASS:-]{+FAIL: libgomp.c/thread-limit-3.c (internal compiler error)+}
{+FAIL:+} libgomp.c/thread-limit-3.c (test for excess errors)
[-PASS:-]{+UNRESOLVED:+} libgomp.c/thread-limit-3.c [-execution
test-]{+compilation failed to produce executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c -DACC_DEVICE_TYPE_nvidia=1
-DACC_MEM_SHARED=0 -O2 [-execution test-]{+compilation failed to produce
executable+}
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 (test for excess errors)
PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O0 execution test
[-PASS:-]{+FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (internal compiler error)+}
{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 (test for excess errors)
[-PASS:-]{+UNRESOLVED:+}
libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 [-execution
test-]{+compilation failed to produce executable+}
Same for "-DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1", and for
"libgomp.oacc-c++", and the combination of both.