[Mlir-commits] [mlir] [mlir][tosa] Add aggressiveReduceConstant argument for the constant reduce optimization (PR #68765)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Oct 10 23:20:25 PDT 2023
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff b8885926f8115d5fe2c06907e066cae061d5f230 fd3fb470ed1aa96cde2a34bf2dc22d2fd6617372 -- mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h mlir/include/mlir/Dialect/Tosa/Transforms/Passes.h mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp mlir/lib/Dialect/Tosa/Transforms/TosaFolders.cpp mlir/lib/Dialect/Tosa/Transforms/TosaLayerwiseConstantFoldPass.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h b/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
index 8ffbd1238..d8d402750 100644
--- a/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
+++ b/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
@@ -33,7 +33,7 @@ std::unique_ptr<Pass> createTosaToLinalgNamed();
/// pipeline succeeds. The option to disable decompositions is available for
/// benchmarking performance improvements from the canonicalizations.
void addTosaToLinalgPasses(
- OpPassManager &pm, const TosaToLinalgOptions& options,
+ OpPassManager &pm, const TosaToLinalgOptions &options,
// Note: Default to 'none' level unless otherwise specified.
tosa::ValidationOptions const &validationOptions =
tosa::ValidationOptions().setLevel(tosa::TosaLevelEnum::None));
diff --git a/mlir/include/mlir/Dialect/Tosa/Transforms/Passes.h b/mlir/include/mlir/Dialect/Tosa/Transforms/Passes.h
index 8f3255dda..940aed107 100644
--- a/mlir/include/mlir/Dialect/Tosa/Transforms/Passes.h
+++ b/mlir/include/mlir/Dialect/Tosa/Transforms/Passes.h
@@ -35,10 +35,12 @@ void populateTosaFoldConstantReciprocalPatterns(MLIRContext *ctx,
void populateTosaFoldConstantTransposePatterns(MLIRContext *ctx,
RewritePatternSet &patterns);
void populateTosaConstantReduction(MLIRContext *ctx,
- RewritePatternSet &patterns,bool aggressiveReduceConstant);
+ RewritePatternSet &patterns,
+ bool aggressiveReduceConstant);
std::unique_ptr<Pass> createTosaLayerwiseConstantFoldPass();
-std::unique_ptr<Pass> createTosaLayerwiseConstantFoldPass(const TosaLayerwiseConstantFoldPassOptions& options);
+std::unique_ptr<Pass> createTosaLayerwiseConstantFoldPass(
+ const TosaLayerwiseConstantFoldPassOptions &options);
std::unique_ptr<Pass> createTosaInferShapesPass();
std::unique_ptr<Pass> createTosaMakeBroadcastablePass();
std::unique_ptr<Pass> createTosaTestQuantUtilAPIPass();
diff --git a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
index e934d21fe..718e34ced 100644
--- a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
+++ b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
@@ -75,7 +75,7 @@ std::unique_ptr<Pass> mlir::tosa::createTosaToLinalg() {
}
void mlir::tosa::addTosaToLinalgPasses(
- OpPassManager &pm, const TosaToLinalgOptions& options,
+ OpPassManager &pm, const TosaToLinalgOptions &options,
tosa::ValidationOptions const &validationOptions) {
// Optional decompositions are designed to benefit linalg.
if (!options.disableTosaDecompositions)
@@ -87,7 +87,8 @@ void mlir::tosa::addTosaToLinalgPasses(
pm.addNestedPass<func::FuncOp>(tosa::createTosaToLinalgNamed());
pm.addNestedPass<func::FuncOp>(createCanonicalizerPass());
// TODO: Remove pass that operates on const tensor and enable optionality
- pm.addNestedPass<func::FuncOp>(tosa::createTosaLayerwiseConstantFoldPass({options.aggressiveReduceConstant}));
+ pm.addNestedPass<func::FuncOp>(tosa::createTosaLayerwiseConstantFoldPass(
+ {options.aggressiveReduceConstant}));
pm.addNestedPass<func::FuncOp>(tosa::createTosaMakeBroadcastablePass());
pm.addNestedPass<func::FuncOp>(
tosa::createTosaValidationPass(validationOptions));
diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaFolders.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaFolders.cpp
index 3b417eda9..d35e911eb 100644
--- a/mlir/lib/Dialect/Tosa/Transforms/TosaFolders.cpp
+++ b/mlir/lib/Dialect/Tosa/Transforms/TosaFolders.cpp
@@ -350,8 +350,10 @@ llvm::APInt calculateReducedValue(const mlir::ElementsAttr &oldTensorAttr,
template <typename OperationType>
struct ReduceConstantOptimization : public OpRewritePattern<OperationType> {
- ReduceConstantOptimization(MLIRContext *context, bool aggressiveReduceConstant):
- OpRewritePattern<OperationType>(context), aggressiveReduceConstant(aggressiveReduceConstant){}
+ ReduceConstantOptimization(MLIRContext *context,
+ bool aggressiveReduceConstant)
+ : OpRewritePattern<OperationType>(context),
+ aggressiveReduceConstant(aggressiveReduceConstant) {}
using OpRewritePattern<OperationType>::OpRewritePattern;
@@ -411,12 +413,18 @@ struct ReduceConstantOptimization : public OpRewritePattern<OperationType> {
void mlir::tosa::populateTosaConstantReduction(MLIRContext *ctx,
RewritePatternSet &patterns,
bool aggressiveReduceConstant) {
- patterns.add<ReduceConstantOptimization<ReduceAllOp>>(ctx, aggressiveReduceConstant);
- patterns.add<ReduceConstantOptimization<ReduceAnyOp>>(ctx, aggressiveReduceConstant);
- patterns.add<ReduceConstantOptimization<ReduceMaxOp>>(ctx, aggressiveReduceConstant);
- patterns.add<ReduceConstantOptimization<ReduceMinOp>>(ctx, aggressiveReduceConstant);
- patterns.add<ReduceConstantOptimization<ReduceProdOp>>(ctx, aggressiveReduceConstant);
- patterns.add<ReduceConstantOptimization<ReduceSumOp>>(ctx, aggressiveReduceConstant);
+ patterns.add<ReduceConstantOptimization<ReduceAllOp>>(
+ ctx, aggressiveReduceConstant);
+ patterns.add<ReduceConstantOptimization<ReduceAnyOp>>(
+ ctx, aggressiveReduceConstant);
+ patterns.add<ReduceConstantOptimization<ReduceMaxOp>>(
+ ctx, aggressiveReduceConstant);
+ patterns.add<ReduceConstantOptimization<ReduceMinOp>>(
+ ctx, aggressiveReduceConstant);
+ patterns.add<ReduceConstantOptimization<ReduceProdOp>>(
+ ctx, aggressiveReduceConstant);
+ patterns.add<ReduceConstantOptimization<ReduceSumOp>>(
+ ctx, aggressiveReduceConstant);
}
void mlir::tosa::populateTosaFoldConstantTransposePatterns(
diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaLayerwiseConstantFoldPass.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaLayerwiseConstantFoldPass.cpp
index 56bc53a47..e1400f0c9 100644
--- a/mlir/lib/Dialect/Tosa/Transforms/TosaLayerwiseConstantFoldPass.cpp
+++ b/mlir/lib/Dialect/Tosa/Transforms/TosaLayerwiseConstantFoldPass.cpp
@@ -45,9 +45,9 @@ void populateTosaOpsCanonicalizationPatterns(MLIRContext *ctx,
struct TosaLayerwiseConstantFoldPass
: public tosa::impl::TosaLayerwiseConstantFoldPassBase<
TosaLayerwiseConstantFoldPass> {
- TosaLayerwiseConstantFoldPass(const TosaLayerwiseConstantFoldPassOptions& options):TosaLayerwiseConstantFoldPassBase(options)
- {
- }
+ TosaLayerwiseConstantFoldPass(
+ const TosaLayerwiseConstantFoldPassOptions &options)
+ : TosaLayerwiseConstantFoldPassBase(options) {}
void runOnOperation() override {
auto *ctx = &getContext();
@@ -56,7 +56,8 @@ struct TosaLayerwiseConstantFoldPass
mlir::tosa::populateTosaFoldConstantReciprocalPatterns(ctx, patterns);
mlir::tosa::populateTosaFoldConstantTransposePatterns(ctx, patterns);
- mlir::tosa::populateTosaConstantReduction(ctx, patterns, aggressiveReduceConstant);
+ mlir::tosa::populateTosaConstantReduction(ctx, patterns,
+ aggressiveReduceConstant);
populateTosaOpsCanonicalizationPatterns(ctx, patterns);
if (applyPatternsAndFoldGreedily(func, std::move(patterns)).failed())
@@ -67,9 +68,11 @@ struct TosaLayerwiseConstantFoldPass
} // namespace
std::unique_ptr<Pass> mlir::tosa::createTosaLayerwiseConstantFoldPass() {
-return std::make_unique<TosaLayerwiseConstantFoldPass>(TosaLayerwiseConstantFoldPassOptions{false});
+ return std::make_unique<TosaLayerwiseConstantFoldPass>(
+ TosaLayerwiseConstantFoldPassOptions{false});
}
-std::unique_ptr<Pass> mlir::tosa::createTosaLayerwiseConstantFoldPass(const TosaLayerwiseConstantFoldPassOptions& options) {
+std::unique_ptr<Pass> mlir::tosa::createTosaLayerwiseConstantFoldPass(
+ const TosaLayerwiseConstantFoldPassOptions &options) {
return std::make_unique<TosaLayerwiseConstantFoldPass>(options);
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/68765
More information about the Mlir-commits
mailing list