aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2025-04-06 17:44:18 +0200
committerThomas Schwinge <tschwinge@baylibre.com>2025-04-07 15:57:02 +0200
commit199f1abeef579912b4c40c42519825cedca6530f (patch)
treea739fae279412305db3792cc7b9494872a483eb0 /gcc/rust/resolve/rust-late-name-resolver-2.0.cc
parentfdbe017bc15f8cf6f211a056c1822bc1a933ae85 (diff)
downloadgcc-199f1abeef579912b4c40c42519825cedca6530f.zip
gcc-199f1abeef579912b4c40c42519825cedca6530f.tar.gz
gcc-199f1abeef579912b4c40c42519825cedca6530f.tar.bz2
nvptx: Support '-mfake-ptx-alloca': defer failure to run-time 'alloca' usage
Follow-up to commit 1146410c0feb0e82c689b1333fdf530a2b34dc2b "nvptx: Support '-mfake-ptx-alloca'". '-mfake-ptx-alloca' is applicable only for configurations where PTX 'alloca' is not supported, where target libraries are built with it enabled (that is, libstdc++, libgfortran). This change progresses: [-FAIL:-]{+PASS:+} g++.dg/tree-ssa/pr20458.C -std=gnu++17 (test for excess errors) [-UNRESOLVED:-]{+PASS:+} g++.dg/tree-ssa/pr20458.C -std=gnu++17 [-compilation failed to produce executable-]{+execution test+} [-FAIL:-]{+PASS:+} g++.dg/tree-ssa/pr20458.C -std=gnu++26 (test for excess errors) [-UNRESOLVED:-]{+PASS:+} g++.dg/tree-ssa/pr20458.C -std=gnu++26 [-compilation failed to produce executable-]{+execution test+} UNSUPPORTED: g++.dg/tree-ssa/pr20458.C -std=gnu++98: exception handling not supported ..., and "enables" a few test cases: FAIL: g++.old-deja/g++.other/sibcall1.C -std=gnu++17 (test for excess errors) [Etc.] FAIL: g++.old-deja/g++.other/unchanging1.C -std=gnu++17 (test for excess errors) [Etc.] ..., which now (unrelatedly to 'alloca', and in the same way as configurations where PTX 'alloca' is supported) FAIL due to: unresolved symbol _Unwind_DeleteException collect2: error: ld returned 1 exit status Most importantly, it progresses ~830 libstdc++ test cases: [-FAIL:-]{+PASS:+} [...] (test for excess errors) ..., with (if applicable, for most of them): [-UNRESOLVED:-]{+PASS:+} [...] [-compilation failed to produce executable-]{+execution test+} ..., or just a few 'FAIL: [...] execution test' where these test cases also FAIL in configurations where PTX 'alloca' is supported, or ~120 instances of 'FAIL: [...] execution test' due to run-time 'GCC/nvptx: sorry, unimplemented: dynamic stack allocation not supported'. This change also resolves the cases noted in commit bac2d8a246892334e24dfa7d62be0cd0648c5606 "nvptx: Build libgfortran with '-mfake-ptx-alloca' [PR107635]": | With '-mfake-ptx-alloca', libgfortran again succeeds to build, and compared | to before, we've got only a small number of regressions due to nvptx 'ld' | complaining about 'unresolved symbol __GCC_nvptx__PTX_alloca_not_supported': | | [-PASS:-]{+FAIL:+} gfortran.dg/coarray/codimension_2.f90 -fcoarray=lib -O2 -lcaf_single (test for excess errors) [-FAIL:-]{+PASS:+} gfortran.dg/coarray/codimension_2.f90 -fcoarray=lib -O2 -lcaf_single (test for excess errors) | [-PASS:-]{+FAIL:+} gfortran.dg/coarray/event_4.f08 -fcoarray=lib -O2 -lcaf_single (test for excess errors) | [-PASS:-]{+UNRESOLVED:+} gfortran.dg/coarray/event_4.f08 -fcoarray=lib -O2 -lcaf_single [-execution test-]{+compilation failed to produce executable+} [-FAIL:-]{+PASS:+} gfortran.dg/coarray/event_4.f08 -fcoarray=lib -O2 -lcaf_single (test for excess errors) [-UNRESOLVED:-]{+PASS:+} gfortran.dg/coarray/event_4.f08 -fcoarray=lib -O2 -lcaf_single [-compilation failed to produce executable-]{+execution test+} | [-PASS:-]{+FAIL:+} gfortran.dg/coarray/fail_image_2.f08 -fcoarray=lib -O2 -lcaf_single (test for excess errors) | [-PASS:-]{+UNRESOLVED:+} gfortran.dg/coarray/fail_image_2.f08 -fcoarray=lib -O2 -lcaf_single [-execution test-]{+compilation failed to produce executable+} [-FAIL:-]{+PASS:+} gfortran.dg/coarray/fail_image_2.f08 -fcoarray=lib -O2 -lcaf_single (test for excess errors) [-UNRESOLVED:-]{+PASS:+} gfortran.dg/coarray/fail_image_2.f08 -fcoarray=lib -O2 -lcaf_single [-compilation failed to produce executable-]{+execution test+} | [-PASS:-]{+FAIL:+} gfortran.dg/coarray/proc_pointer_assign_1.f90 -fcoarray=lib -O2 -lcaf_single (test for excess errors) | [-PASS:-]{+UNRESOLVED:+} gfortran.dg/coarray/proc_pointer_assign_1.f90 -fcoarray=lib -O2 -lcaf_single [-execution test-]{+compilation failed to produce executable+} [-FAIL:-]{+PASS:+} gfortran.dg/coarray/proc_pointer_assign_1.f90 -fcoarray=lib -O2 -lcaf_single (test for excess errors) [-UNRESOLVED:-]{+PASS:+} gfortran.dg/coarray/proc_pointer_assign_1.f90 -fcoarray=lib -O2 -lcaf_single [-compilation failed to produce executable-]{+execution test+} | [-PASS:-]{+FAIL:+} gfortran.dg/coarray_43.f90 -O (test for excess errors) [-FAIL:-]{+PASS:+} gfortran.dg/coarray_43.f90 -O (test for excess errors) ..., and further progresses: [-FAIL:-]{+PASS:+} gfortran.dg/coarray_lib_comm_1.f90 -O0 (test for excess errors) [-UNRESOLVED:-]{+FAIL:+} gfortran.dg/coarray_lib_comm_1.f90 -O0 [-compilation failed to produce executable-]{+execution test+} [Etc.] ..., which now (unrelatedly to 'alloca', and in the same way as configurations where PTX 'alloca' is supported) FAILs due to: error : Prototype doesn't match for '_gfortran_caf_transfer_between_remotes' in 'input file 9 at offset 159897', first defined in 'input file 9 at offset 159897' error : Prototype doesn't match for '_gfortran_caf_stop_numeric' in 'input file 9 at offset 159897', first defined in 'input file 9 at offset 159897' nvptx-run: cuLinkAddData failed: device kernel image is invalid (CUDA_ERROR_INVALID_SOURCE, 300) gcc/ * config/nvptx/nvptx.opt (-mfake-ptx-alloca): Update. gcc/testsuite/ * gcc.target/nvptx/alloca-2-O0_-mfake-ptx-alloca.c: Adjust. libgcc/ * config/nvptx/alloca.c: New. * config/nvptx/t-nvptx (LIB2ADD): Add it.
Diffstat (limited to 'gcc/rust/resolve/rust-late-name-resolver-2.0.cc')
0 files changed, 0 insertions, 0 deletions