From eede2498e61e00a176fb2908ca0317b55c084a84 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Wed, 15 Dec 2021 14:37:58 +0100 Subject: [PATCH] [nvptx] Add -mptx=7.0 Add support for ptx isa version 7.0, required for the addition of -misa=sm_75 and -misa=sm_80. Tested by setting the default ptx isa version to 7.0, and doing a build and libgomp test run. gcc/ChangeLog: * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_7_0. * config/nvptx/nvptx.c (nvptx_file_start): Handle TARGET_PTX_7_0. * config/nvptx/nvptx.h (TARGET_PTX_7_0): New macro. * config/nvptx/nvptx.opt (ptx_version): Add 7.0. --- gcc/config/nvptx/nvptx-opts.h | 3 ++- gcc/config/nvptx/nvptx.c | 4 +++- gcc/config/nvptx/nvptx.h | 1 + gcc/config/nvptx/nvptx.opt | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/config/nvptx/nvptx-opts.h b/gcc/config/nvptx/nvptx-opts.h index f7371dc..396fe87 100644 --- a/gcc/config/nvptx/nvptx-opts.h +++ b/gcc/config/nvptx/nvptx-opts.h @@ -30,7 +30,8 @@ enum ptx_isa enum ptx_version { PTX_VERSION_3_1, - PTX_VERSION_6_3 + PTX_VERSION_6_3, + PTX_VERSION_7_0 }; #endif diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 445d7ce..51eef2b 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -5404,7 +5404,9 @@ static void nvptx_file_start (void) { fputs ("// BEGIN PREAMBLE\n", asm_out_file); - if (TARGET_PTX_6_3) + if (TARGET_PTX_7_0) + fputs ("\t.version\t7.0\n", asm_out_file); + else if (TARGET_PTX_6_3) fputs ("\t.version\t6.3\n", asm_out_file); else fputs ("\t.version\t3.1\n", asm_out_file); diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h index c3480cc..92fd9d3 100644 --- a/gcc/config/nvptx/nvptx.h +++ b/gcc/config/nvptx/nvptx.h @@ -90,6 +90,7 @@ #define TARGET_SM53 (ptx_isa_option >= PTX_ISA_SM53) #define TARGET_PTX_6_3 (ptx_version_option >= PTX_VERSION_6_3) +#define TARGET_PTX_7_0 (ptx_version_option >= PTX_VERSION_7_0) /* Registers. Since ptx is a virtual target, we just define a few hard registers for special purposes and leave pseudos unallocated. diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt index 514f19d..04b45da 100644 --- a/gcc/config/nvptx/nvptx.opt +++ b/gcc/config/nvptx/nvptx.opt @@ -79,6 +79,9 @@ Enum(ptx_version) String(3.1) Value(PTX_VERSION_3_1) EnumValue Enum(ptx_version) String(6.3) Value(PTX_VERSION_6_3) +EnumValue +Enum(ptx_version) String(7.0) Value(PTX_VERSION_7_0) + mptx= Target RejectNegative ToLower Joined Enum(ptx_version) Var(ptx_version_option) Init(PTX_VERSION_3_1) Specify the version of the ptx version to use. -- 2.7.4