[llvm] [mlir] [nvvm] Include `llvm-optimize-for-nvvm-target` pass in `gpu-lower-to-nvvm-pipeline` (PR #107102)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 3 05:54:35 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Christian Sigg (chsigg)
<details>
<summary>Changes</summary>
The generic pass pipeline to lower to NVVM should apply these optimizations.
---
Full diff: https://github.com/llvm/llvm-project/pull/107102.diff
3 Files Affected:
- (modified) mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt (+1)
- (modified) mlir/lib/Dialect/GPU/Pipelines/GPUToNVVMPipeline.cpp (+2)
- (modified) utils/bazel/llvm-project-overlay/mlir/BUILD.bazel (+1)
``````````diff
diff --git a/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt b/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt
index 70a9c77a6d796a..5e5003e0e4a329 100644
--- a/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt
@@ -11,6 +11,7 @@ add_mlir_dialect_library(MLIRGPUPipelines
MLIRTransforms
MLIRLinalgTransforms
MLIRAffineToStandard
+ MLIRLLVMIRTransforms
MLIRGPUToNVVMTransforms
MLIRIndexToLLVM
MLIRMathToLLVM
diff --git a/mlir/lib/Dialect/GPU/Pipelines/GPUToNVVMPipeline.cpp b/mlir/lib/Dialect/GPU/Pipelines/GPUToNVVMPipeline.cpp
index fb440756e0c1d5..6051d232b2ddc1 100644
--- a/mlir/lib/Dialect/GPU/Pipelines/GPUToNVVMPipeline.cpp
+++ b/mlir/lib/Dialect/GPU/Pipelines/GPUToNVVMPipeline.cpp
@@ -30,6 +30,7 @@
#include "mlir/Dialect/GPU/Pipelines/Passes.h"
#include "mlir/Dialect/GPU/Transforms/Passes.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
+#include "mlir/Dialect/LLVMIR/Transforms/OptimizeForNVVM.h"
#include "mlir/Dialect/Linalg/Passes.h"
#include "mlir/Dialect/MemRef/Transforms/Passes.h"
#include "mlir/Pass/PassManager.h"
@@ -78,6 +79,7 @@ void buildGpuPassPipeline(OpPassManager &pm,
opt.useBarePtrCallConv = options.kernelUseBarePtrCallConv;
opt.indexBitwidth = options.indexBitWidth;
pm.addNestedPass<gpu::GPUModuleOp>(createConvertGpuOpsToNVVMOps(opt));
+ pm.addNestedPass<gpu::GPUModuleOp>(NVVM::createOptimizeForTargetPass());
pm.addNestedPass<gpu::GPUModuleOp>(createCanonicalizerPass());
pm.addNestedPass<gpu::GPUModuleOp>(createCSEPass());
pm.addNestedPass<gpu::GPUModuleOp>(createReconcileUnrealizedCastsPass());
diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
index ddb08f12f04976..c19345ea378a00 100644
--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -5636,6 +5636,7 @@ cc_library(
":GPUTransforms",
":IndexToLLVM",
":LLVMDialect",
+ ":LLVMIRTransforms",
":LinalgTransforms",
":MathToLLVM",
":MemRefToLLVM",
``````````
</details>
https://github.com/llvm/llvm-project/pull/107102
More information about the llvm-commits
mailing list