nvptx: Add -mptx=6.0 + -misa=sm_70 gcc/ChangeLog: * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70. * gcc/config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Likewise. * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70. (mptx): Add 6.0 alias PTX_VERSION_6_0. * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75, sm_80. * doc/invoke.texi (-misa, -mptx): Update for new values and defaults. gcc/config/nvptx/nvptx-c.cc | 2 ++ gcc/config/nvptx/nvptx.cc | 2 ++ gcc/config/nvptx/nvptx.opt | 6 ++++++ gcc/config/nvptx/t-omp-device | 2 +- gcc/doc/invoke.texi | 17 +++++++++++------ 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/gcc/config/nvptx/nvptx-c.cc b/gcc/config/nvptx/nvptx-c.cc index d68b9910d7e..b2375fb5b16 100644 --- a/gcc/config/nvptx/nvptx-c.cc +++ b/gcc/config/nvptx/nvptx-c.cc @@ -43,6 +43,8 @@ nvptx_cpu_cpp_builtins (void) cpp_define (parse_in, "__PTX_SM__=800"); else if (TARGET_SM75) cpp_define (parse_in, "__PTX_SM__=750"); + else if (TARGET_SM70) + cpp_define (parse_in, "__PTX_SM__=700"); else if (TARGET_SM53) cpp_define (parse_in, "__PTX_SM__=530"); else if (TARGET_SM35) diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc index afbad5bdde6..f3f3201a7ba 100644 --- a/gcc/config/nvptx/nvptx.cc +++ b/gcc/config/nvptx/nvptx.cc @@ -217,6 +217,8 @@ first_ptx_version_supporting_sm (enum ptx_isa sm) return PTX_VERSION_3_1; case PTX_ISA_SM53: return PTX_VERSION_4_2; + case PTX_ISA_SM70: + return PTX_VERSION_6_0; case PTX_ISA_SM75: return PTX_VERSION_6_3; case PTX_ISA_SM80: diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt index e3f65b2d0b1..c00af111829 100644 --- a/gcc/config/nvptx/nvptx.opt +++ b/gcc/config/nvptx/nvptx.opt @@ -64,6 +64,9 @@ Enum(ptx_isa) String(sm_35) Value(PTX_ISA_SM35) EnumValue Enum(ptx_isa) String(sm_53) Value(PTX_ISA_SM53) +EnumValue +Enum(ptx_isa) String(sm_70) Value(PTX_ISA_SM70) + EnumValue Enum(ptx_isa) String(sm_75) Value(PTX_ISA_SM75) @@ -82,6 +85,9 @@ Known PTX versions (for use with the -mptx= option): EnumValue Enum(ptx_version) String(3.1) Value(PTX_VERSION_3_1) +EnumValue +Enum(ptx_version) String(6.0) Value(PTX_VERSION_6_0) + EnumValue Enum(ptx_version) String(6.3) Value(PTX_VERSION_6_3) diff --git a/gcc/config/nvptx/t-omp-device b/gcc/config/nvptx/t-omp-device index 8765d9f1881..4228218a424 100644 --- a/gcc/config/nvptx/t-omp-device +++ b/gcc/config/nvptx/t-omp-device @@ -1,4 +1,4 @@ omp-device-properties-nvptx: $(srcdir)/config/nvptx/nvptx.cc echo kind: gpu > $@ echo arch: nvptx >> $@ - echo isa: sm_30 sm_35 >> $@ + echo isa: sm_30 sm_35 sm_53 sm_70 sm_75 sm_80 >> $@ diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index e1a00c80307..54ca0070356 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -27250,15 +27250,20 @@ supported. @item -misa=@var{ISA-string} @opindex march -Generate code for given the specified PTX ISA (e.g.@: @samp{sm_35}). ISA -strings must be lower-case. Valid ISA strings include @samp{sm_30} and -@samp{sm_35}. The default ISA is sm_35. +Generate code for given the specified PTX ISA (e.g.@: @samp{sm_70}). ISA +strings must be lower-case. Valid ISA strings include @samp{sm_30}, +@samp{sm_35}, @samp{sm_53}, @samp{sm_70}, @samp{sm_75}, and @samp{sm_80}. +The default ISA is sm_35. @item -mptx=@var{version-string} @opindex mptx -Generate code for given the specified PTX version (e.g.@: @samp{6.3}). -Valid version strings include @samp{3.1} and @samp{6.3}. The default PTX -version is 3.1. +Generate code for given the specified PTX version (e.g.@: @samp{7.0}). +Valid version strings include @samp{3.1}, @samp{6.0}, @samp{6.3}, and +@samp{7.0}. The default PTX version is 6.0, unless a higher minimal +version is required for specified PTX ISA via option @option{-misa=}. + +the lowest supported +PTX version supporting @item -mmainkernel @opindex mmainkernel