public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
@ 2020-03-23 13:45 tschwinge at gcc dot gnu.org
  2020-04-21 13:02 ` [Bug target/94278] " tschwinge at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2020-03-23 13:45 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

            Bug ID: 94278
           Summary: [amdgcn] Offloading build failures due to 'llvm-mc'
                    SIGSEGV
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: openacc, openmp
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tschwinge at gcc dot gnu.org
                CC: ams at gcc dot gnu.org, jules at gcc dot gnu.org
  Target Milestone: ---

This is with GCC commit b73f69020f08208d2d969fcf8879bd294a6e3596 sources, with
commit b12fb08bd95d7dbb9fd6af120ee0b4c658a3deb1, and commit
65858e1869be4a54f8e0e2073a4aa99b15471273 cherry-picked, and PR94248 fixed with
Jakub's 'reg_overlap_mentioned_p' patch.

Relative to a GCC nvptx offloading configuration, when adding amdgcn
offloading, I see the following regression:

    [-PASS:-]{+FAIL: libgomp.c/../libgomp.c-c++-common/pr93515.c (internal
compiler error)+}
    {+FAIL:+} libgomp.c/../libgomp.c-c++-common/pr93515.c (test for excess
errors)
    [-PASS:-]{+UNRESOLVED:+} libgomp.c/../libgomp.c-c++-common/pr93515.c
[-execution test-]{+compilation failed to produce executable+}

    Stack dump:
    0.      Program arguments:
[...]/install/offload-amdgcn-amdhsa/amdgcn-amdhsa/bin/as -triple=amdgcn--amdhsa
-mattr=-code-object-v3 -mcpu=fiji -filetype=obj -o /tmp/ccn2bzJ1.o
/tmp/cchOR6jK.mkoffload.2.s 
    xgcc: internal compiler error: Segmentation fault signal terminated program
as
    [...]
    mkoffload: fatal error:
[...]/build-gcc/./gcc/x86_64-pc-linux-gnu-accel-amdgcn-amdhsa-gcc returned 4
exit status

That's with stock Ubuntu 18.04 LLVM 9 packages:

    $ [...]/install/offload-amdgcn-amdhsa/amdgcn-amdhsa/bin/as --version
    LLVM (http://llvm.org/):
      LLVM version 9.0.0
    [...]
    $ readlink [...]/install/offload-amdgcn-amdhsa/amdgcn-amdhsa/bin/as
    /usr/bin/llvm-mc-9
    $ dpkg -S /usr/bin/llvm-mc-9
    llvm-9: /usr/bin/llvm-mc-9
    $ apt-cache policy llvm-9
    llvm-9:
      Installed: 1:9-2~ubuntu18.04.2
    [...]

As this is a problem in an external tool, are we going to declare this "not our
problem", hoping it'll go away in a later release?  Or, do we intent to be
compatible with this LLVM version, and inspect whether there maybe is an actual
issue with GCC's amdgcn code generation that triggers this problem?

Same for 'libgomp.c++' variant.

Supposedly same problem for:

    [-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/pr86660.c (internal compiler error)+}
    {+FAIL:+} libgomp.c/pr86660.c (test for excess errors)
    [-PASS:-]{+UNRESOLVED:+} libgomp.c/pr86660.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:-]{+FAIL: libgomp.c++/for-15.C (internal compiler error)+}
    {+FAIL:+} libgomp.c++/for-15.C (test for excess errors)
    [-PASS:-]{+UNRESOLVED:+} libgomp.c++/for-15.C [-execution
test-]{+compilation failed to produce executable+}

    [-PASS:-]{+FAIL: libgomp.c++/for-24.C (internal compiler error)+}
    {+FAIL:+} libgomp.c++/for-24.C (test for excess errors)
    [-PASS:-]{+UNRESOLVED:+} libgomp.c++/for-24.C [-execution
test-]{+compilation failed to produce executable+}

    [-PASS:-]{+FAIL: libgomp.c++/pr69555-2.C (internal compiler error)+}
    {+FAIL:+} libgomp.c++/pr69555-2.C (test for excess errors)
    [-PASS:-]{+UNRESOLVED:+} libgomp.c++/pr69555-2.C [-execution
test-]{+compilation failed to produce executable+}

And, for 'libgomp.oacc-*' (with all "execution test" etc. FAILs ignored as
"[n/a]"; "libgomp: device type gcn not supported" due to running on unsuitable
hardware):

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-2.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-4.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/abort-5.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_on_device-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-kernels.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-clauses-parallel.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-firstprivate-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-firstprivate-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-firstprivate-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-firstprivate-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED:
libgomp.oacc-c/../libgomp.oacc-c-c++-common/data-firstprivate-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/lib-32.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/mode-transitions.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/mode-transitions.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/mode-transitions.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/mode-transitions.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/mode-transitions.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

    PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0  (test
for excess errors)
    [n/a]: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O0 
execution test
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
(internal compiler error)
    FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2  (test
for excess errors)
    UNRESOLVED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-type-1.c
-DACC_DEVICE_TYPE_gcn=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa  -O2 
compilation failed to produce executable

Same for 'libgomp.oacc-c++' variant.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
@ 2020-04-21 13:02 ` tschwinge at gcc dot gnu.org
  2020-04-21 13:23 ` ams at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2020-04-21 13:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-04-21

--- Comment #1 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
Andrew, Julian, any insights here?

(In reply to Thomas Schwinge from comment #0)
>     Stack dump:
>     0.      Program arguments:
> [...]/install/offload-amdgcn-amdhsa/amdgcn-amdhsa/bin/as
> -triple=amdgcn--amdhsa -mattr=-code-object-v3 -mcpu=fiji -filetype=obj -o
> /tmp/ccn2bzJ1.o /tmp/cchOR6jK.mkoffload.2.s 
>     xgcc: internal compiler error: Segmentation fault signal terminated
> program as
>     [...]
>     mkoffload: fatal error:
> [...]/build-gcc/./gcc/x86_64-pc-linux-gnu-accel-amdgcn-amdhsa-gcc returned 4
> exit status
> 
> That's with stock Ubuntu 18.04 LLVM 9 packages:
> 
>     $ [...]/install/offload-amdgcn-amdhsa/amdgcn-amdhsa/bin/as --version
>     LLVM (http://llvm.org/):
>       LLVM version 9.0.0
>     [...]
>     $ readlink [...]/install/offload-amdgcn-amdhsa/amdgcn-amdhsa/bin/as
>     /usr/bin/llvm-mc-9
>     $ dpkg -S /usr/bin/llvm-mc-9
>     llvm-9: /usr/bin/llvm-mc-9
>     $ apt-cache policy llvm-9
>     llvm-9:
>       Installed: 1:9-2~ubuntu18.04.2
>     [...]
> 
> As this is a problem in an external tool, are we going to declare this "not
> our problem", hoping it'll go away in a later release?  Or, do we intent to
> be compatible with this LLVM version, and inspect whether there maybe is an
> actual issue with GCC's amdgcn code generation that triggers this problem?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
  2020-04-21 13:02 ` [Bug target/94278] " tschwinge at gcc dot gnu.org
@ 2020-04-21 13:23 ` ams at gcc dot gnu.org
  2020-04-22 10:13 ` tschwinge at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ams at gcc dot gnu.org @ 2020-04-21 13:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

--- Comment #2 from Andrew Stubbs <ams at gcc dot gnu.org> ---
Well, it works for me:

PASS: libgomp.c/examples-4/async_target-2.c (test for excess errors)
PASS: libgomp.c/examples-4/async_target-2.c execution test

That's with an unmodified LLVM 9 we built ourselves.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
  2020-04-21 13:02 ` [Bug target/94278] " tschwinge at gcc dot gnu.org
  2020-04-21 13:23 ` ams at gcc dot gnu.org
@ 2020-04-22 10:13 ` tschwinge at gcc dot gnu.org
  2020-04-23 12:45 ` ams at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2020-04-22 10:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2020-04-21 00:00:00         |2020-4-22

--- Comment #3 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
(In reply to Andrew Stubbs from comment #2)
> Well, it works for me:
> 
> PASS: libgomp.c/examples-4/async_target-2.c (test for excess errors)
> PASS: libgomp.c/examples-4/async_target-2.c execution test

Strange.


> That's with an unmodified LLVM 9 we built ourselves.

By the way, I see the same problem when using LLVM 10.


Most certainly there is some problem in the LLVM assembler (because that tool
certainly should SIGSEGV even when presented possibly "strange" input), and
maybe that depends on the optimization level that LLVM has been compiled with,
or something like that...


But, I found at least something.  From a quick search through my email
archives, I see that there's a huge (maybe even complete?, not verified)
overlap compared to the test FAILs reported in PR81430 "nvptx acceleration
compilation broken because of running pass_partition_blocks".  And indeed the
same '-freorder-blocks-and-partition' ('flag_reorder_blocks_and_partition')
nvptx force-disable hack that once got installed in r250421 "Add
nvptx_override_options_after_change" (later reverted after proper fix for that
issue, r250852 "Apply finish_options on DECL_FUNCTION_SPECIFIC_OPTIMIZATION for
ACCEL_COMPILER") also does cure (or rather, avoid?) this problem reported here
for GCN offloading compilation, where assumed-correct GCC GCN code is generated
that the LLVM assembler fails to understand.

Would the following be OK to commit as a workaround?  If approving this patch,
please respond with "Reviewed-by: NAME <EMAIL>" so that your effort will be
recorded in the commit log, see <https://gcc.gnu.org/wiki/Reviewed-by>.  The
GCN code generated in 'build-gcc-offload-amdgcn-amdhsa/amdgcn-amdhsa/' doesn't
change at all, and it doesn't cause any libgomp offloading compilation
regressions, but I have not yet otherwise assessed whether this breaks
anything.

    +static void
    +gcn_override_options_after_change (void)
    +{
    +  flag_reorder_blocks_and_partition = 0;
    +}

    +#undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE
    +#define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE
gcn_override_options_after_change

At the very least, this gives a clue about where to further look for what the
actual problem is.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2020-04-22 10:13 ` tschwinge at gcc dot gnu.org
@ 2020-04-23 12:45 ` ams at gcc dot gnu.org
  2021-04-21 12:27 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ams at gcc dot gnu.org @ 2020-04-23 12:45 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

--- Comment #4 from Andrew Stubbs <ams at gcc dot gnu.org> ---
Almost all the tests listed in pr81430 pass for me (and the exception I found
is a link error).

I don't understand what's happening with your build, but from my point of view
the patch fixes an issue that doesn't exist.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2020-04-23 12:45 ` ams at gcc dot gnu.org
@ 2021-04-21 12:27 ` rguenth at gcc dot gnu.org
  2021-04-21 12:32 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-21 12:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
I'm running into the same issue (and filed PR100181) but with llvm11 based
llvm-mc the CUs are instead rejected due to a section crossing jump:

./pr93515.xamdgcn-amdhsa.mkoffload.2.s:634:2: error: undefined label '.L33'
        s_branch        .L33
        ^
mkoffload: fatal error: /usr/bin//x86_64-suse-linux-accel-amdgcn-amdhsa-gcc-11
returned 1 exit status

        s_branch        .L33
        .section        .text.unlikely
        .type   main._omp_fn.4.cold, @function
main._omp_fn.4.cold:
.L33:
        s_getpc_b64     s[2:3]
        s_add_u32       s2, s2, abort@rel32@lo+4
        s_addc_u32      s3, s3, abort@rel32@hi+4
        s_swappc_b64    s[18:19], s[2:3]
        .text

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-04-21 12:27 ` rguenth at gcc dot gnu.org
@ 2021-04-21 12:32 ` rguenth at gcc dot gnu.org
  2021-04-21 13:09 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-21 12:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
*** Bug 100181 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-04-21 12:32 ` rguenth at gcc dot gnu.org
@ 2021-04-21 13:09 ` rguenth at gcc dot gnu.org
  2021-04-21 13:59 ` rguenth at gcc dot gnu.org
  2021-07-19 16:00 ` burnus at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-21 13:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
If people can/cannot reproduce the issue with the same revs. on the same
testcase double-checking the RTL bb-reorder dumps might be in order to rule out
some
memory corruption on the BB counts.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-04-21 13:09 ` rguenth at gcc dot gnu.org
@ 2021-04-21 13:59 ` rguenth at gcc dot gnu.org
  2021-07-19 16:00 ` burnus at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-21 13:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
The patch from comment#3 fixes the issue for me.  The tests still fail one or
another way (most not finding libgfortran.a - maybe an error on my side, and
a few with unresolved symbols).

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/94278] [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV
  2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-04-21 13:59 ` rguenth at gcc dot gnu.org
@ 2021-07-19 16:00 ` burnus at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: burnus at gcc dot gnu.org @ 2021-07-19 16:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94278

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |DUPLICATE
             Status|NEW                         |RESOLVED

--- Comment #9 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Mark as duplicate of PR 100181 which has a better and more up-to-date
description of the issue

*** This bug has been marked as a duplicate of bug 100181 ***

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-07-19 16:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-23 13:45 [Bug target/94278] New: [amdgcn] Offloading build failures due to 'llvm-mc' SIGSEGV tschwinge at gcc dot gnu.org
2020-04-21 13:02 ` [Bug target/94278] " tschwinge at gcc dot gnu.org
2020-04-21 13:23 ` ams at gcc dot gnu.org
2020-04-22 10:13 ` tschwinge at gcc dot gnu.org
2020-04-23 12:45 ` ams at gcc dot gnu.org
2021-04-21 12:27 ` rguenth at gcc dot gnu.org
2021-04-21 12:32 ` rguenth at gcc dot gnu.org
2021-04-21 13:09 ` rguenth at gcc dot gnu.org
2021-04-21 13:59 ` rguenth at gcc dot gnu.org
2021-07-19 16:00 ` burnus at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).