[Mlir-commits] [mlir] [MLIR][Affine] Drop assumptions of surrounding builtin.func op in Utils/LoopUtils (PR #116324)
Uday Bondhugula
llvmlistbot at llvm.org
Thu Nov 14 22:00:24 PST 2024
https://github.com/bondhugula created https://github.com/llvm/llvm-project/pull/116324
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.
>From cbf1643bc4a60f925b0ebbf080ad615f555e63e6 Mon Sep 17 00:00:00 2001
From: Uday Bondhugula <uday at polymagelabs.com>
Date: Fri, 15 Nov 2024 11:27:24 +0530
Subject: [PATCH] [MLIR][Affine] Drop assumptions of surrounding builtin.func
op in Utils/LoopUtils
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.
---
mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp | 9 +++++----
mlir/lib/Dialect/Affine/Utils/Utils.cpp | 4 ++--
2 files changed, 7 insertions(+), 6 deletions(-)
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
More information about the Mlir-commits
mailing list