summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Holewinski <jholewinski@nvidia.com>2015-03-30 19:30:55 +0000
committerJustin Holewinski <jholewinski@nvidia.com>2015-03-30 19:30:55 +0000
commit0afca26e90e2d7c334c69277ba4e9751ae15f810 (patch)
tree8c1602f289e5862c0d7f05e33ce387c81ddd7659
parent9dffcd04f72c07212288754f8eedc844c46ba805 (diff)
downloadbcm5719-llvm-0afca26e90e2d7c334c69277ba4e9751ae15f810.tar.gz
bcm5719-llvm-0afca26e90e2d7c334c69277ba4e9751ae15f810.zip
[NVPTX] Associate a minimum PTX version for each SM architecture
When a new SM architecture is introduced, it is only supported by the current PTX version and later. Make sure we are using at least the minimum PTX version for the target architecture. This also removes support for PTX ISA < 3.2. llvm-svn: 233583
-rw-r--r--llvm/lib/Target/NVPTX/NVPTX.td14
-rw-r--r--llvm/test/CodeGen/NVPTX/ptx-version-30.ll6
-rw-r--r--llvm/test/CodeGen/NVPTX/ptx-version-31.ll6
-rw-r--r--llvm/test/CodeGen/NVPTX/sm-version-30.ll1
-rw-r--r--llvm/test/CodeGen/NVPTX/sm-version-32.ll1
-rw-r--r--llvm/test/CodeGen/NVPTX/sm-version-35.ll1
-rw-r--r--llvm/test/CodeGen/NVPTX/sm-version-37.ll1
-rw-r--r--llvm/test/CodeGen/NVPTX/sm-version-50.ll7
-rw-r--r--llvm/test/CodeGen/NVPTX/sm-version-52.ll1
-rw-r--r--llvm/test/CodeGen/NVPTX/sm-version-53.ll1
10 files changed, 18 insertions, 21 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTX.td b/llvm/lib/Target/NVPTX/NVPTX.td
index e27fd75c23f..96abfa85911 100644
--- a/llvm/lib/Target/NVPTX/NVPTX.td
+++ b/llvm/lib/Target/NVPTX/NVPTX.td
@@ -46,10 +46,6 @@ def SM53 : SubtargetFeature<"sm_53", "SmVersion", "53",
"Target SM 5.3">;
// 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",
@@ -69,12 +65,12 @@ class Proc<string Name, list<SubtargetFeature> Features>
def : Proc<"sm_20", [SM20]>;
def : Proc<"sm_21", [SM21]>;
def : Proc<"sm_30", [SM30]>;
-def : Proc<"sm_32", [SM32]>;
+def : Proc<"sm_32", [SM32, PTX40]>;
def : Proc<"sm_35", [SM35]>;
-def : Proc<"sm_37", [SM37]>;
-def : Proc<"sm_50", [SM50]>;
-def : Proc<"sm_52", [SM52]>;
-def : Proc<"sm_53", [SM53]>;
+def : Proc<"sm_37", [SM37, PTX41]>;
+def : Proc<"sm_50", [SM50, PTX40]>;
+def : Proc<"sm_52", [SM52, PTX41]>;
+def : Proc<"sm_53", [SM53, PTX42]>;
def NVPTXInstrInfo : InstrInfo {
diff --git a/llvm/test/CodeGen/NVPTX/ptx-version-30.ll b/llvm/test/CodeGen/NVPTX/ptx-version-30.ll
deleted file mode 100644
index 0422b01f4ee..00000000000
--- a/llvm/test/CodeGen/NVPTX/ptx-version-30.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llc < %s -march=nvptx -mcpu=sm_20 -mattr=ptx30 | FileCheck %s
-; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 -mattr=ptx30 | FileCheck %s
-
-
-; CHECK: .version 3.0
-
diff --git a/llvm/test/CodeGen/NVPTX/ptx-version-31.ll b/llvm/test/CodeGen/NVPTX/ptx-version-31.ll
deleted file mode 100644
index d6e57301a37..00000000000
--- a/llvm/test/CodeGen/NVPTX/ptx-version-31.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llc < %s -march=nvptx -mcpu=sm_20 -mattr=ptx31 | FileCheck %s
-; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 -mattr=ptx31 | FileCheck %s
-
-
-; CHECK: .version 3.1
-
diff --git a/llvm/test/CodeGen/NVPTX/sm-version-30.ll b/llvm/test/CodeGen/NVPTX/sm-version-30.ll
index 692b49a0d6b..4f35cf04c63 100644
--- a/llvm/test/CodeGen/NVPTX/sm-version-30.ll
+++ b/llvm/test/CodeGen/NVPTX/sm-version-30.ll
@@ -2,5 +2,6 @@
; RUN: llc < %s -march=nvptx64 -mcpu=sm_30 | FileCheck %s
+; CHECK: .version 3.2
; CHECK: .target sm_30
diff --git a/llvm/test/CodeGen/NVPTX/sm-version-32.ll b/llvm/test/CodeGen/NVPTX/sm-version-32.ll
index b737f36a774..d6a5082c526 100644
--- a/llvm/test/CodeGen/NVPTX/sm-version-32.ll
+++ b/llvm/test/CodeGen/NVPTX/sm-version-32.ll
@@ -2,5 +2,6 @@
; RUN: llc < %s -march=nvptx64 -mcpu=sm_32 | FileCheck %s
+; CHECK: .version 4.0
; CHECK: .target sm_32
diff --git a/llvm/test/CodeGen/NVPTX/sm-version-35.ll b/llvm/test/CodeGen/NVPTX/sm-version-35.ll
index 25368a01335..8456c666677 100644
--- a/llvm/test/CodeGen/NVPTX/sm-version-35.ll
+++ b/llvm/test/CodeGen/NVPTX/sm-version-35.ll
@@ -2,5 +2,6 @@
; RUN: llc < %s -march=nvptx64 -mcpu=sm_35 | FileCheck %s
+; CHECK: .version 3.2
; CHECK: .target sm_35
diff --git a/llvm/test/CodeGen/NVPTX/sm-version-37.ll b/llvm/test/CodeGen/NVPTX/sm-version-37.ll
index 957a3d95705..fd51a9c7063 100644
--- a/llvm/test/CodeGen/NVPTX/sm-version-37.ll
+++ b/llvm/test/CodeGen/NVPTX/sm-version-37.ll
@@ -2,5 +2,6 @@
; RUN: llc < %s -march=nvptx64 -mcpu=sm_37 | FileCheck %s
+; CHECK: .version 4.1
; CHECK: .target sm_37
diff --git a/llvm/test/CodeGen/NVPTX/sm-version-50.ll b/llvm/test/CodeGen/NVPTX/sm-version-50.ll
new file mode 100644
index 00000000000..374c6ea057a
--- /dev/null
+++ b/llvm/test/CodeGen/NVPTX/sm-version-50.ll
@@ -0,0 +1,7 @@
+; RUN: llc < %s -march=nvptx -mcpu=sm_50 | FileCheck %s
+; RUN: llc < %s -march=nvptx64 -mcpu=sm_50 | FileCheck %s
+
+
+; CHECK: .version 4.0
+; CHECK: .target sm_50
+
diff --git a/llvm/test/CodeGen/NVPTX/sm-version-52.ll b/llvm/test/CodeGen/NVPTX/sm-version-52.ll
index 9b8fc72b5a9..18881b2e98c 100644
--- a/llvm/test/CodeGen/NVPTX/sm-version-52.ll
+++ b/llvm/test/CodeGen/NVPTX/sm-version-52.ll
@@ -2,5 +2,6 @@
; RUN: llc < %s -march=nvptx64 -mcpu=sm_52 | FileCheck %s
+; CHECK: .version 4.1
; CHECK: .target sm_52
diff --git a/llvm/test/CodeGen/NVPTX/sm-version-53.ll b/llvm/test/CodeGen/NVPTX/sm-version-53.ll
index f1b8e5bacf2..50d2dec11bc 100644
--- a/llvm/test/CodeGen/NVPTX/sm-version-53.ll
+++ b/llvm/test/CodeGen/NVPTX/sm-version-53.ll
@@ -2,5 +2,6 @@
; RUN: llc < %s -march=nvptx64 -mcpu=sm_53 | FileCheck %s
+; CHECK: .version 4.2
; CHECK: .target sm_53
OpenPOWER on IntegriCloud