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.