summaryrefslogtreecommitdiffstats
path: root/mlir/test/Conversion/GPUToCUDA
diff options
context:
space:
mode:
authorChristian Sigg <csigg@google.com>2019-09-23 03:16:23 -0700
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-09-23 03:17:01 -0700
commitb8676da1fc5e7d371a76defbd1b4a93a41fe2e33 (patch)
tree2ebd739e95dfea1c52397e752debbb5d13952a52 /mlir/test/Conversion/GPUToCUDA
parentc900d4994e609ac0f4730d0cdd918eae958e9d28 (diff)
downloadbcm5719-llvm-b8676da1fc5e7d371a76defbd1b4a93a41fe2e33.tar.gz
bcm5719-llvm-b8676da1fc5e7d371a76defbd1b4a93a41fe2e33.zip
Outline GPU kernel function into a nested module.
Roll forward of commit 5684a12. When outlining GPU kernels, put the kernel function inside a nested module. Then use a nested pipeline to generate the cubins, independently per kernel. In a final pass, move the cubins back to the parent module. PiperOrigin-RevId: 270639748
Diffstat (limited to 'mlir/test/Conversion/GPUToCUDA')
-rw-r--r--mlir/test/Conversion/GPUToCUDA/insert-cubin-getter.mlir9
-rw-r--r--mlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir34
2 files changed, 33 insertions, 10 deletions
diff --git a/mlir/test/Conversion/GPUToCUDA/insert-cubin-getter.mlir b/mlir/test/Conversion/GPUToCUDA/insert-cubin-getter.mlir
index d2e291f57e7..9e0907f7477 100644
--- a/mlir/test/Conversion/GPUToCUDA/insert-cubin-getter.mlir
+++ b/mlir/test/Conversion/GPUToCUDA/insert-cubin-getter.mlir
@@ -2,9 +2,14 @@
// CHECK: llvm.mlir.global constant @[[global:.*]]("CUBIN")
+module attributes {gpu.kernel_module} {
+ func @kernel(!llvm.float, !llvm<"float*">)
+ attributes {nvvm.cubin = "CUBIN"}
+}
+
func @kernel(!llvm.float, !llvm<"float*">)
-// CHECK: attributes {gpu.kernel, nvvm.cubin = "CUBIN", nvvm.cubingetter = @[[getter:.*]]}
- attributes {gpu.kernel, nvvm.cubin = "CUBIN"}
+// CHECK: attributes {gpu.kernel, nvvm.cubingetter = @[[getter:.*]]}
+ attributes {gpu.kernel}
// CHECK: func @[[getter]]() -> !llvm<"i8*">
// CHECK: %[[addressof:.*]] = llvm.mlir.addressof @[[global]]
diff --git a/mlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir b/mlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir
index 8ddfc1996ef..b6e19989203 100644
--- a/mlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir
+++ b/mlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir
@@ -1,8 +1,26 @@
-// RUN: mlir-opt %s --test-kernel-to-cubin | FileCheck %s
-
-func @kernel(%arg0 : !llvm.float, %arg1 : !llvm<"float*">)
-// CHECK: attributes {gpu.kernel, nvvm.cubin = "CUBIN"}
- attributes { gpu.kernel } {
-// CHECK-NOT: llvm.return
- llvm.return
-} \ No newline at end of file
+// RUN: mlir-opt %s --test-kernel-to-cubin -split-input-file | FileCheck %s
+
+module attributes {gpu.kernel_module} {
+ func @kernel(%arg0 : !llvm.float, %arg1 : !llvm<"float*">)
+ // CHECK: attributes {gpu.kernel, nvvm.cubin = "CUBIN"}
+ attributes { gpu.kernel } {
+ // CHECK-NOT: llvm.return
+ llvm.return
+ }
+}
+
+// -----
+
+module attributes {gpu.kernel_module} {
+ // CHECK: func @kernel_a
+ func @kernel_a()
+ attributes { gpu.kernel } {
+ llvm.return
+ }
+
+ // CHECK: func @kernel_b
+ func @kernel_b()
+ attributes { gpu.kernel } {
+ llvm.return
+ }
+}
OpenPOWER on IntegriCloud