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.

Reply via email to