[Mlir-commits] [mlir] [MLIR][Affine] Drop assumptions of surrounding builtin.func op in Utils/LoopUtils (PR #116324)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Fri Nov 15 23:25:47 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Uday Bondhugula (bondhugula)
<details>
<summary>Changes</summary>
Drop assumptions of surrounding builtin.func op in affine LoopUtils and
Utils. There are use cases of affine fusion or affine transformation in
other func-like ops.
In the context of https://github.com/llvm/llvm-project/issues/116042
---
Full diff: https://github.com/llvm/llvm-project/pull/116324.diff
2 Files Affected:
- (modified) mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp (+5-4)
- (modified) mlir/lib/Dialect/Affine/Utils/Utils.cpp (+2-2)
``````````diff
diff --git a/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp b/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
index d6fc4ed07bfab3..33901f818ad491 100644
--- a/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
+++ b/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
@@ -1936,8 +1936,8 @@ static LogicalResult generateCopy(
*nBegin = begin;
*nEnd = end;
- func::FuncOp f = begin->getParentOfType<func::FuncOp>();
- OpBuilder topBuilder(f.getBody());
+ auto f = begin->getParentOfType<FunctionOpInterface>();
+ OpBuilder topBuilder(f.getFunctionBody());
Value zeroIndex = topBuilder.create<arith::ConstantIndexOp>(f.getLoc(), 0);
*sizeInBytes = 0;
@@ -1956,8 +1956,9 @@ static LogicalResult generateCopy(
OpBuilder &b = region.isWrite() ? epilogue : prologue;
// Builder to create constants at the top level.
- auto func = copyPlacementBlock->getParent()->getParentOfType<func::FuncOp>();
- OpBuilder top(func.getBody());
+ auto func =
+ copyPlacementBlock->getParent()->getParentOfType<FunctionOpInterface>();
+ OpBuilder top(func.getFunctionBody());
auto loc = region.loc;
auto memref = region.memref;
diff --git a/mlir/lib/Dialect/Affine/Utils/Utils.cpp b/mlir/lib/Dialect/Affine/Utils/Utils.cpp
index 7fe422f75c8fad..7129ce86d6db8d 100644
--- a/mlir/lib/Dialect/Affine/Utils/Utils.cpp
+++ b/mlir/lib/Dialect/Affine/Utils/Utils.cpp
@@ -1391,11 +1391,11 @@ LogicalResult mlir::affine::replaceAllMemRefUsesWith(
std::unique_ptr<PostDominanceInfo> postDomInfo;
if (domOpFilter)
domInfo = std::make_unique<DominanceInfo>(
- domOpFilter->getParentOfType<func::FuncOp>());
+ domOpFilter->getParentOfType<FunctionOpInterface>());
if (postDomOpFilter)
postDomInfo = std::make_unique<PostDominanceInfo>(
- postDomOpFilter->getParentOfType<func::FuncOp>());
+ postDomOpFilter->getParentOfType<FunctionOpInterface>());
// Walk all uses of old memref; collect ops to perform replacement. We use a
// DenseSet since an operation could potentially have multiple uses of a
``````````
</details>
https://github.com/llvm/llvm-project/pull/116324
More information about the Mlir-commits
mailing list