[Mlir-commits] [mlir] ad3ecc2 - [mlir][gpu] NFC: Make room for more than one GPU rewrite pattern.
Christian Sigg
llvmlistbot at llvm.org
Sun Oct 18 22:52:57 PDT 2020
Author: Christian Sigg
Date: 2020-10-19T07:52:47+02:00
New Revision: ad3ecc24b1db56f87f89b9fd52eb1ad531056894
URL: https://github.com/llvm/llvm-project/commit/ad3ecc24b1db56f87f89b9fd52eb1ad531056894
DIFF: https://github.com/llvm/llvm-project/commit/ad3ecc24b1db56f87f89b9fd52eb1ad531056894.diff
LOG: [mlir][gpu] NFC: Make room for more than one GPU rewrite pattern.
AllReduceLowering is currently the only GPU rewrite pattern, but more are coming. This is a preparation change.
Reviewed By: herhut
Differential Revision: https://reviews.llvm.org/D89370
Added:
mlir/test/lib/Transforms/TestGpuRewrite.cpp
Modified:
mlir/include/mlir/Dialect/GPU/Passes.h
mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp
mlir/test/Dialect/GPU/all-reduce-max.mlir
mlir/test/Dialect/GPU/all-reduce.mlir
mlir/test/lib/Transforms/CMakeLists.txt
Removed:
mlir/test/lib/Transforms/TestAllReduceLowering.cpp
################################################################################
diff --git a/mlir/include/mlir/Dialect/GPU/Passes.h b/mlir/include/mlir/Dialect/GPU/Passes.h
index 64b744b6b172..21c526e468a5 100644
--- a/mlir/include/mlir/Dialect/GPU/Passes.h
+++ b/mlir/include/mlir/Dialect/GPU/Passes.h
@@ -18,9 +18,15 @@
namespace mlir {
std::unique_ptr<OperationPass<ModuleOp>> createGpuKernelOutliningPass();
-/// Collect a set of patterns to rewrite ops within the GPU dialect.
-void populateGpuRewritePatterns(MLIRContext *context,
- OwningRewritePatternList &patterns);
+/// Collect a set of patterns to rewrite all-reduce ops within the GPU dialect.
+void populateGpuAllReducePatterns(MLIRContext *context,
+ OwningRewritePatternList &patterns);
+
+/// Collect all patterns to rewrite ops within the GPU dialect.
+inline void populateGpuRewritePatterns(MLIRContext *context,
+ OwningRewritePatternList &patterns) {
+ populateGpuAllReducePatterns(context, patterns);
+}
//===----------------------------------------------------------------------===//
// Registration
diff --git a/mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp b/mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp
index 38df9ef99154..d3ee3e2b9283 100644
--- a/mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp
+++ b/mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp
@@ -397,7 +397,7 @@ struct GpuAllReduceConversion : public RewritePattern {
};
} // namespace
-void mlir::populateGpuRewritePatterns(MLIRContext *context,
- OwningRewritePatternList &patterns) {
+void mlir::populateGpuAllReducePatterns(MLIRContext *context,
+ OwningRewritePatternList &patterns) {
patterns.insert<GpuAllReduceConversion>(context);
}
diff --git a/mlir/test/Dialect/GPU/all-reduce-max.mlir b/mlir/test/Dialect/GPU/all-reduce-max.mlir
index 142228dc276e..fb5fcafc3536 100644
--- a/mlir/test/Dialect/GPU/all-reduce-max.mlir
+++ b/mlir/test/Dialect/GPU/all-reduce-max.mlir
@@ -1,4 +1,4 @@
-// RUN: mlir-opt -test-all-reduce-lowering %s | FileCheck %s
+// RUN: mlir-opt -test-gpu-rewrite %s | FileCheck %s
// NOTE: Assertions have been autogenerated by utils/generate-test-checks.py
// CHECK: gpu.module @kernels {
diff --git a/mlir/test/Dialect/GPU/all-reduce.mlir b/mlir/test/Dialect/GPU/all-reduce.mlir
index 491d9b32fe91..758fb44cbc88 100644
--- a/mlir/test/Dialect/GPU/all-reduce.mlir
+++ b/mlir/test/Dialect/GPU/all-reduce.mlir
@@ -1,4 +1,4 @@
-// RUN: mlir-opt -test-all-reduce-lowering %s | FileCheck %s
+// RUN: mlir-opt -test-gpu-rewrite %s | FileCheck %s
// NOTE: Assertions have been autogenerated by utils/generate-test-checks.py
// CHECK: gpu.module @kernels {
diff --git a/mlir/test/lib/Transforms/CMakeLists.txt b/mlir/test/lib/Transforms/CMakeLists.txt
index effa7e252a95..e3e82f2febcf 100644
--- a/mlir/test/lib/Transforms/CMakeLists.txt
+++ b/mlir/test/lib/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
# Exclude tests from libMLIR.so
add_mlir_library(MLIRTestTransforms
- TestAllReduceLowering.cpp
TestAffineLoopParametricTiling.cpp
TestBufferPlacement.cpp
TestExpandTanh.cpp
@@ -15,6 +14,7 @@ add_mlir_library(MLIRTestTransforms
TestLoopFusion.cpp
TestGpuMemoryPromotion.cpp
TestGpuParallelLoopMapping.cpp
+ TestGpuRewrite.cpp
TestInlining.cpp
TestLinalgCodegenStrategy.cpp
TestLinalgFusionTransforms.cpp
diff --git a/mlir/test/lib/Transforms/TestAllReduceLowering.cpp b/mlir/test/lib/Transforms/TestGpuRewrite.cpp
similarity index 81%
rename from mlir/test/lib/Transforms/TestAllReduceLowering.cpp
rename to mlir/test/lib/Transforms/TestGpuRewrite.cpp
index 0c72b6cd2a89..13f0d2e39aae 100644
--- a/mlir/test/lib/Transforms/TestAllReduceLowering.cpp
+++ b/mlir/test/lib/Transforms/TestGpuRewrite.cpp
@@ -18,8 +18,8 @@
using namespace mlir;
namespace {
-struct TestAllReduceLoweringPass
- : public PassWrapper<TestAllReduceLoweringPass, OperationPass<ModuleOp>> {
+struct TestGpuRewritePass
+ : public PassWrapper<TestGpuRewritePass, OperationPass<ModuleOp>> {
void getDependentDialects(DialectRegistry ®istry) const override {
registry.insert<StandardOpsDialect>();
}
@@ -33,8 +33,8 @@ struct TestAllReduceLoweringPass
namespace mlir {
void registerTestAllReduceLoweringPass() {
- PassRegistration<TestAllReduceLoweringPass> pass(
- "test-all-reduce-lowering",
- "Lowers gpu.all-reduce ops within the GPU dialect.");
+ PassRegistration<TestGpuRewritePass> pass(
+ "test-gpu-rewrite",
+ "Applies all rewrite patterns within the GPU dialect.");
}
} // namespace mlir
More information about the Mlir-commits
mailing list