diff options
author | Scott Manley <rscottmanley@gmail.com> | 2025-01-30 07:27:41 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-30 14:27:41 +0100 |
commit | 29371d3b55c9b44f413e05de4844452c1e0e5be0 (patch) | |
tree | 037fba13bbf0a527d28e73b48a4e93674919797b | |
parent | 2e581dc54b8983122528ade578824d70ec42b503 (diff) | |
download | llvm-29371d3b55c9b44f413e05de4844452c1e0e5be0.zip llvm-29371d3b55c9b44f413e05de4844452c1e0e5be0.tar.gz llvm-29371d3b55c9b44f413e05de4844452c1e0e5be0.tar.bz2 |
[AffineParallelize] expose options when creating pass (#124959)
Add a createAffineParallelizePass() that takes AffineParallelizeOptions
so it can be customized in a pass pipeline.
-rw-r--r-- | mlir/include/mlir/Dialect/Affine/Passes.h | 4 | ||||
-rw-r--r-- | mlir/include/mlir/Dialect/Affine/Passes.td | 1 | ||||
-rw-r--r-- | mlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp | 7 |
3 files changed, 2 insertions, 10 deletions
diff --git a/mlir/include/mlir/Dialect/Affine/Passes.h b/mlir/include/mlir/Dialect/Affine/Passes.h index e152101..bc29d04 100644 --- a/mlir/include/mlir/Dialect/Affine/Passes.h +++ b/mlir/include/mlir/Dialect/Affine/Passes.h @@ -44,10 +44,6 @@ createSimplifyAffineStructuresPass(); std::unique_ptr<OperationPass<func::FuncOp>> createAffineLoopInvariantCodeMotionPass(); -/// Creates a pass to convert all parallel affine.for's into 1-d affine.parallel -/// ops. -std::unique_ptr<OperationPass<func::FuncOp>> createAffineParallelizePass(); - /// Apply normalization transformations to affine loop-like ops. If /// `promoteSingleIter` is true, single iteration loops are promoted (i.e., the /// loop is replaced by its loop body). diff --git a/mlir/include/mlir/Dialect/Affine/Passes.td b/mlir/include/mlir/Dialect/Affine/Passes.td index 77073aa..d7c7897 100644 --- a/mlir/include/mlir/Dialect/Affine/Passes.td +++ b/mlir/include/mlir/Dialect/Affine/Passes.td @@ -370,7 +370,6 @@ def AffineVectorize : Pass<"affine-super-vectorize", "func::FuncOp"> { def AffineParallelize : Pass<"affine-parallelize", "func::FuncOp"> { let summary = "Convert affine.for ops into 1-D affine.parallel"; - let constructor = "mlir::affine::createAffineParallelizePass()"; let options = [ Option<"maxNested", "max-nested", "unsigned", /*default=*/"-1u", "Maximum number of nested parallel loops to produce. " diff --git a/mlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp b/mlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp index 64f2bc6..fa0676b 100644 --- a/mlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp +++ b/mlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp @@ -42,6 +42,8 @@ namespace { /// Convert all parallel affine.for op into 1-D affine.parallel op. struct AffineParallelize : public affine::impl::AffineParallelizeBase<AffineParallelize> { + using AffineParallelizeBase<AffineParallelize>::AffineParallelizeBase; + void runOnOperation() override; }; @@ -90,8 +92,3 @@ void AffineParallelize::runOnOperation() { } } } - -std::unique_ptr<OperationPass<func::FuncOp>> -mlir::affine::createAffineParallelizePass() { - return std::make_unique<AffineParallelize>(); -} |