Hi, Add an -mptx=_ value, that indicates the default ptx version.
It can be used to undo an explicit -mptx setting, so this: ... $ gcc test.c -mptx=3.1 -mptx=_ ... has the same effect as: ... $ gcc test.c ... Tested on nvptx. Committed to trunk. Thanks, - Tom [nvptx] Add -mptx=_ gcc/ChangeLog: 2022-02-28 Tom de Vries <tdevr...@suse.de> * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_default. * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle PTX_VERSION_default. * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default. --- gcc/config/nvptx/nvptx-opts.h | 1 + gcc/config/nvptx/nvptx.cc | 3 ++- gcc/config/nvptx/nvptx.opt | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/config/nvptx/nvptx-opts.h b/gcc/config/nvptx/nvptx-opts.h index e918d43ea16..30852b6992c 100644 --- a/gcc/config/nvptx/nvptx-opts.h +++ b/gcc/config/nvptx/nvptx-opts.h @@ -32,6 +32,7 @@ enum ptx_isa enum ptx_version { + PTX_VERSION_default, PTX_VERSION_3_0, PTX_VERSION_3_1, PTX_VERSION_4_2, diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc index b9451c2ed09..7862a90a65a 100644 --- a/gcc/config/nvptx/nvptx.cc +++ b/gcc/config/nvptx/nvptx.cc @@ -296,7 +296,8 @@ sm_version_to_string (enum ptx_isa sm) static void handle_ptx_version_option (void) { - if (!OPTION_SET_P (ptx_version_option)) + if (!OPTION_SET_P (ptx_version_option) + || ptx_version_option == PTX_VERSION_default) { ptx_version_option = default_ptx_version_option (); return; diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt index 9776c3b9a1f..f555ad1d8bf 100644 --- a/gcc/config/nvptx/nvptx.opt +++ b/gcc/config/nvptx/nvptx.opt @@ -94,6 +94,9 @@ Enum(ptx_version) String(6.3) Value(PTX_VERSION_6_3) EnumValue Enum(ptx_version) String(7.0) Value(PTX_VERSION_7_0) +EnumValue +Enum(ptx_version) String(_) Value(PTX_VERSION_default) + mptx= Target RejectNegative ToLower Joined Enum(ptx_version) Var(ptx_version_option) Specify the version of the ptx version to use.