[llvm] r211929 - [NVPTX] Add target options for PTX 3.2/4.0 and SM 5.0 (Maxwell)

Justin Holewinski jholewinski at nvidia.com
Fri Jun 27 11:35:18 PDT 2014


Author: jholewinski
Date: Fri Jun 27 13:35:18 2014
New Revision: 211929

URL: http://llvm.org/viewvc/llvm-project?rev=211929&view=rev
Log:
[NVPTX] Add target options for PTX 3.2/4.0 and SM 5.0 (Maxwell)

Default PTX version is set to PTX 3.2

Modified:
    llvm/trunk/lib/Target/NVPTX/NVPTX.td
    llvm/trunk/lib/Target/NVPTX/NVPTXSubtarget.cpp

Modified: llvm/trunk/lib/Target/NVPTX/NVPTX.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTX.td?rev=211929&r1=211928&r2=211929&view=diff
==============================================================================
--- llvm/trunk/lib/Target/NVPTX/NVPTX.td (original)
+++ llvm/trunk/lib/Target/NVPTX/NVPTX.td Fri Jun 27 13:35:18 2014
@@ -34,12 +34,18 @@ def SM30 : SubtargetFeature<"sm_30", "Sm
                             "Target SM 3.0">;
 def SM35 : SubtargetFeature<"sm_35", "SmVersion", "35",
                             "Target SM 3.5">;
+def SM50 : SubtargetFeature<"sm_50", "SmVersion", "50",
+                            "Target SM 5.0">;
 
 // PTX Versions
 def PTX30 : SubtargetFeature<"ptx30", "PTXVersion", "30",
                              "Use PTX version 3.0">;
 def PTX31 : SubtargetFeature<"ptx31", "PTXVersion", "31",
                              "Use PTX version 3.1">;
+def PTX32 : SubtargetFeature<"ptx32", "PTXVersion", "32",
+                             "Use PTX version 3.2">;
+def PTX40 : SubtargetFeature<"ptx40", "PTXVersion", "40",
+                             "Use PTX version 4.0">;
 
 //===----------------------------------------------------------------------===//
 // NVPTX supported processors.
@@ -52,6 +58,7 @@ def : Proc<"sm_20", [SM20]>;
 def : Proc<"sm_21", [SM21]>;
 def : Proc<"sm_30", [SM30]>;
 def : Proc<"sm_35", [SM35]>;
+def : Proc<"sm_50", [SM50]>;
 
 
 def NVPTXInstrInfo : InstrInfo {

Modified: llvm/trunk/lib/Target/NVPTX/NVPTXSubtarget.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTXSubtarget.cpp?rev=211929&r1=211928&r2=211929&view=diff
==============================================================================
--- llvm/trunk/lib/Target/NVPTX/NVPTXSubtarget.cpp (original)
+++ llvm/trunk/lib/Target/NVPTX/NVPTXSubtarget.cpp Fri Jun 27 13:35:18 2014
@@ -45,13 +45,10 @@ NVPTXSubtarget &NVPTXSubtarget::initiali
 
   ParseSubtargetFeatures(TargetName, FS);
 
-  // We default to PTX 3.1, but we cannot just default to it in the initializer
-  // since the attribute parser checks if the given option is >= the default.
-  // So if we set ptx31 as the default, the ptx30 attribute would never match.
-  // Instead, we use 0 as the default and manually set 31 if the default is
-  // used.
-  if (PTXVersion == 0)
-    PTXVersion = 31;
+  // Set default to PTX 3.2 (CUDA 5.5)
+  if (PTXVersion == 0) {
+    PTXVersion = 32;
+  }
 
   return *this;
 }





More information about the llvm-commits mailing list