[Mlir-commits] [mlir] [MLIR][NFC] Expose `computeProduct` function. (PR #135192)
Alan Li
llvmlistbot at llvm.org
Thu Apr 10 07:46:31 PDT 2025
https://github.com/lialan created https://github.com/llvm/llvm-project/pull/135192
Make it non-static, as its functionality is quite generic.
>From 6a91f3670cdd56c4cd6cd98c0dd3d088233e8439 Mon Sep 17 00:00:00 2001
From: Alan Li <me at alanli.org>
Date: Thu, 10 Apr 2025 07:30:19 -0700
Subject: [PATCH] [MLIR][NFC] Expose `computeProduct` function.
Make it non-static, as its functionality is quite generic.
---
mlir/include/mlir/Dialect/Affine/IR/AffineOps.h | 5 +++++
mlir/lib/Dialect/Affine/IR/AffineOps.cpp | 6 ++----
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/mlir/include/mlir/Dialect/Affine/IR/AffineOps.h b/mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
index bbf38f2293448..6fdb72c370e6d 100644
--- a/mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
+++ b/mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
@@ -53,6 +53,11 @@ Region *getAffineScope(Operation *op);
/// analysis scope.
Region *getAffineAnalysisScope(Operation *op);
+/// Return the product of `terms`, creating an `affine.apply` if any of them are
+/// non-constant values. If any of `terms` is `nullptr`, return `nullptr`.
+OpFoldResult computeProduct(Location loc, OpBuilder &builder,
+ ArrayRef<OpFoldResult> terms);
+
/// AffineDmaStartOp starts a non-blocking DMA operation that transfers data
/// from a source memref to a destination memref. The source and destination
/// memref need not be of the same dimensionality, but need to have the same
diff --git a/mlir/lib/Dialect/Affine/IR/AffineOps.cpp b/mlir/lib/Dialect/Affine/IR/AffineOps.cpp
index 9c5b9e82cd5e0..aa49c49062c76 100644
--- a/mlir/lib/Dialect/Affine/IR/AffineOps.cpp
+++ b/mlir/lib/Dialect/Affine/IR/AffineOps.cpp
@@ -5081,10 +5081,8 @@ struct DropLinearizeUnitComponentsIfDisjointOrZero final
}
};
-/// Return the product of `terms`, creating an `affine.apply` if any of them are
-/// non-constant values. If any of `terms` is `nullptr`, return `nullptr`.
-static OpFoldResult computeProduct(Location loc, OpBuilder &builder,
- ArrayRef<OpFoldResult> terms) {
+OpFoldResult computeProduct(Location loc, OpBuilder &builder,
+ ArrayRef<OpFoldResult> terms) {
int64_t nDynamic = 0;
SmallVector<Value> dynamicPart;
AffineExpr result = builder.getAffineConstantExpr(1);
More information about the Mlir-commits
mailing list