https://gcc.gnu.org/g:8312c7de440a864f378f3e3bd921e5c8785c3907
commit 8312c7de440a864f378f3e3bd921e5c8785c3907 Author: Thomas Schwinge <tschwi...@baylibre.com> Date: Sun Nov 10 17:32:55 2024 +0100 nvptx: Clarify that our baseline is PTX ISA Version 3.1 Added in commit decde11183bdccc46587d6614b75f3d56a2f2e4a "[nvptx] Choose -mptx default based on -misa", 'PTX_VERSION_3_0' was added for 'first_ptx_version_supporting_sm' to return it for 'PTX_ISA_SM30' (as documented by Nvidia). It's however then immediately overridden to 3.1, which in GCC/nvptx "has been the smallest version historically", and also '-mptx=3.0' isn't exposed to the user. As we also elsewhere (machine description etc.) assume that our baseline is PTX ISA Version 3.1, there's no real value added in maintaining 'PTX_VERSION_3_0' for purposes of 'first_ptx_version_supporting_sm' only. No change in behavior intended. gcc/ * config/nvptx/nvptx-opts.h (enum ptx_version): Remove 'PTX_VERSION_3_0'. * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm) (default_ptx_version_option, ptx_version_to_string) (ptx_version_to_number): Adjust. * config/nvptx/nvptx.h: Comment. (cherry picked from commit 380ceb23b130a2b9ec541607a3eb1ffd0387c576) Diff: --- gcc/ChangeLog.omp | 10 ++++++++++ gcc/config/nvptx/nvptx-opts.h | 4 +++- gcc/config/nvptx/nvptx.cc | 9 +-------- gcc/config/nvptx/nvptx.h | 2 ++ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index 86d14fa31087..6b0a3860ce60 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -3,6 +3,16 @@ Backported from trunk: 2024-12-06 Thomas Schwinge <tschwi...@baylibre.com> + * config/nvptx/nvptx-opts.h (enum ptx_version): Remove + 'PTX_VERSION_3_0'. + * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm) + (default_ptx_version_option, ptx_version_to_string) + (ptx_version_to_number): Adjust. + * config/nvptx/nvptx.h: Comment. + + Backported from trunk: + 2024-12-06 Thomas Schwinge <tschwi...@baylibre.com> + * config.gcc: nvptx: Support '--with-multilib-list'. * config/nvptx/gen-multilib-matches.sh: Adjust. * configure.ac: Likewise. diff --git a/gcc/config/nvptx/nvptx-opts.h b/gcc/config/nvptx/nvptx-opts.h index fb5147c143e9..d0b47f0aeeff 100644 --- a/gcc/config/nvptx/nvptx-opts.h +++ b/gcc/config/nvptx/nvptx-opts.h @@ -30,11 +30,13 @@ enum ptx_isa #undef NVPTX_SM }; +/* 'PTX_VERSION_[...]'s smaller than 'PTX_VERSION_3_1' are not listed here: + our baseline is PTX ISA Version 3.1. */ + enum ptx_version { PTX_VERSION_unset, PTX_VERSION_default = PTX_VERSION_unset, - PTX_VERSION_3_0, PTX_VERSION_3_1, PTX_VERSION_4_2, PTX_VERSION_6_0, diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc index c18e2af9e30d..588bb87c5b39 100644 --- a/gcc/config/nvptx/nvptx.cc +++ b/gcc/config/nvptx/nvptx.cc @@ -218,7 +218,7 @@ first_ptx_version_supporting_sm (enum ptx_isa sm) switch (sm) { case PTX_ISA_SM30: - return PTX_VERSION_3_0; + return /* PTX_VERSION_3_0 not defined */ PTX_VERSION_3_1; case PTX_ISA_SM35: return PTX_VERSION_3_1; case PTX_ISA_SM53: @@ -242,9 +242,6 @@ default_ptx_version_option (void) /* Pick a version that supports the sm. */ enum ptx_version res = first; - /* Pick at least 3.1. This has been the smallest version historically. */ - res = MAX (res, PTX_VERSION_3_1); - /* Pick at least 6.0, to enable using bar.warp.sync to have a way to force warp convergence. */ res = MAX (res, PTX_VERSION_6_0); @@ -259,8 +256,6 @@ ptx_version_to_string (enum ptx_version v) { switch (v) { - case PTX_VERSION_3_0: - return "3.0"; case PTX_VERSION_3_1: return "3.1"; case PTX_VERSION_4_2: @@ -281,8 +276,6 @@ ptx_version_to_number (enum ptx_version v, bool major_p) { switch (v) { - case PTX_VERSION_3_0: - return major_p ? 3 : 0; case PTX_VERSION_3_1: return major_p ? 3 : 1; case PTX_VERSION_4_2: diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h index cadc6fb4ab1d..0cf7640e5ece 100644 --- a/gcc/config/nvptx/nvptx.h +++ b/gcc/config/nvptx/nvptx.h @@ -91,6 +91,8 @@ #include "nvptx-gen.h" +/* There are no 'TARGET_PTX_3_1' and smaller conditionals: our baseline is + PTX ISA Version 3.1. */ #define TARGET_PTX_6_0 (ptx_version_option >= PTX_VERSION_6_0) #define TARGET_PTX_6_3 (ptx_version_option >= PTX_VERSION_6_3) #define TARGET_PTX_7_0 (ptx_version_option >= PTX_VERSION_7_0)