[Mlir-commits] [mlir] [mlir][IR][NFC] Cleanup insertion point API usage (PR #115415)
Matthias Springer
llvmlistbot at llvm.org
Thu Nov 7 19:26:59 PST 2024
https://github.com/matthias-springer created https://github.com/llvm/llvm-project/pull/115415
Use `setInsertionPointToStart` / `setInsertionPointToEnd` when possible.
>From 4eb1a3970c6b1e4397fed9911dcec53ad648ee3e Mon Sep 17 00:00:00 2001
From: Matthias Springer <mspringer at nvidia.com>
Date: Fri, 8 Nov 2024 04:24:52 +0100
Subject: [PATCH] [mlir][IR] Cleanup insertion point API usage
Use `setInsertionPointToStart` / `setInsertionPointToEnd` when possible.
---
mlir/include/mlir/IR/Builders.h | 2 +-
mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp | 3 +--
mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp | 2 +-
mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp | 2 +-
mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp | 2 +-
mlir/lib/Dialect/SCF/IR/SCF.cpp | 2 +-
mlir/lib/Dialect/SCF/Utils/Utils.cpp | 3 +--
mlir/lib/Dialect/Shape/Transforms/OutlineShapeComputation.cpp | 2 +-
mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp | 4 ++--
mlir/lib/Target/LLVMIR/ModuleImport.cpp | 2 +-
mlir/lib/Transforms/Utils/FoldUtils.cpp | 4 ++--
11 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/mlir/include/mlir/IR/Builders.h b/mlir/include/mlir/IR/Builders.h
index 04a8bddc3cd59a..6fb71ccefda151 100644
--- a/mlir/include/mlir/IR/Builders.h
+++ b/mlir/include/mlir/IR/Builders.h
@@ -225,7 +225,7 @@ class OpBuilder : public Builder {
explicit OpBuilder(Region *region, Listener *listener = nullptr)
: OpBuilder(region->getContext(), listener) {
if (!region->empty())
- setInsertionPoint(®ion->front(), region->front().begin());
+ setInsertionPointToStart(®ion->front());
}
explicit OpBuilder(Region ®ion, Listener *listener = nullptr)
: OpBuilder(®ion, listener) {}
diff --git a/mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp b/mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
index 53e73ec0d81bf0..08b451f7d5b325 100644
--- a/mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
+++ b/mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
@@ -76,8 +76,7 @@ void GPUToSPIRVPass::runOnOperation() {
// module inside the original GPU module, as that's the expectaion of the
// normal GPU compilation pipeline.
if (targetEnvSupportsKernelCapability(moduleOp)) {
- builder.setInsertionPoint(moduleOp.getBody(),
- moduleOp.getBody()->begin());
+ builder.setInsertionPointToStart(moduleOp.getBody());
} else {
builder.setInsertionPoint(moduleOp.getOperation());
}
diff --git a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
index 87c0936cee229e..ba31936af5510d 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+++ b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
@@ -706,7 +706,7 @@ class ExecutionModePattern
Block *block = rewriter.createBlock(®ion);
// Initialize the struct and set the execution mode value.
- rewriter.setInsertionPoint(block, block->begin());
+ rewriter.setInsertionPointToStart(block);
Value structValue = rewriter.create<LLVM::UndefOp>(loc, structType);
Value executionMode = rewriter.create<LLVM::ConstantOp>(
loc, llvmI32Type,
diff --git a/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp b/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
index fe002359c20224..dd20412ee70801 100644
--- a/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
@@ -115,7 +115,7 @@ handleInlinedAllocas(Operation *call,
stackPtr = builder.create<LLVM::StackSaveOp>(
call->getLoc(), LLVM::LLVMPointerType::get(call->getContext()));
}
- builder.setInsertionPoint(callerEntryBlock, callerEntryBlock->begin());
+ builder.setInsertionPointToStart(callerEntryBlock);
for (auto &[allocaOp, arraySize, shouldInsertLifetime] : allocasToMove) {
auto newConstant = builder.create<LLVM::ConstantOp>(
allocaOp->getLoc(), allocaOp.getArraySize().getType(), arraySize);
diff --git a/mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp b/mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
index 71eb59d40836c1..f0215742f2cf8c 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
@@ -451,7 +451,7 @@ static std::optional<Value> allocateSubviewGPUMemoryInAddressSpace(
shape.push_back(value.getSExtValue());
}
- builder.setInsertionPoint(&funcOp.front(), funcOp.front().begin());
+ builder.setInsertionPointToStart(&funcOp.front());
auto type = MemRefType::get(
shape, subview.getType().getElementType(), MemRefLayoutAttrInterface{},
gpu::AddressSpaceAttr::get(builder.getContext(), addressSpace));
diff --git a/mlir/lib/Dialect/SCF/IR/SCF.cpp b/mlir/lib/Dialect/SCF/IR/SCF.cpp
index a07593be2fc5eb..eded1c394f126c 100644
--- a/mlir/lib/Dialect/SCF/IR/SCF.cpp
+++ b/mlir/lib/Dialect/SCF/IR/SCF.cpp
@@ -805,7 +805,7 @@ mlir::scf::replaceAndCastForOpIterArg(RewriterBase &rewriter, scf::ForOp forOp,
// 3. Inject an incoming cast op at the beginning of the block for the bbArg
// corresponding to the `replacement` value.
OpBuilder::InsertionGuard g(rewriter);
- rewriter.setInsertionPoint(&newBlock, newBlock.begin());
+ rewriter.setInsertionPointToStart(&newBlock);
BlockArgument newRegionIterArg = newForOp.getTiedLoopRegionIterArg(
&newForOp->getOpOperand(operand.getOperandNumber()));
Value castIn = castFn(rewriter, newForOp.getLoc(), oldType, newRegionIterArg);
diff --git a/mlir/lib/Dialect/SCF/Utils/Utils.cpp b/mlir/lib/Dialect/SCF/Utils/Utils.cpp
index 247311d66ff949..e341c3744f1d8f 100644
--- a/mlir/lib/Dialect/SCF/Utils/Utils.cpp
+++ b/mlir/lib/Dialect/SCF/Utils/Utils.cpp
@@ -456,8 +456,7 @@ FailureOr<UnrolledLoopInfo> mlir::loopUnrollByFactor(
// Create epilogue clean up loop starting at 'upperBoundUnrolled'.
if (generateEpilogueLoop) {
OpBuilder epilogueBuilder(forOp->getContext());
- epilogueBuilder.setInsertionPoint(forOp->getBlock(),
- std::next(Block::iterator(forOp)));
+ epilogueBuilder.setInsertionPointAfter(forOp);
auto epilogueForOp = cast<scf::ForOp>(epilogueBuilder.clone(*forOp));
epilogueForOp.setLowerBound(upperBoundUnrolled);
diff --git a/mlir/lib/Dialect/Shape/Transforms/OutlineShapeComputation.cpp b/mlir/lib/Dialect/Shape/Transforms/OutlineShapeComputation.cpp
index 3297740a5f3ae6..655555f8835449 100644
--- a/mlir/lib/Dialect/Shape/Transforms/OutlineShapeComputation.cpp
+++ b/mlir/lib/Dialect/Shape/Transforms/OutlineShapeComputation.cpp
@@ -71,7 +71,7 @@ createFuncFromCluster(OpBuilder &b, const SmallVector<Operation *, 8> &cluster,
: b.getFunctionType(ValueRange(inputs).getTypes(), shape.getType());
shape::FuncOp fnOp = b.create<shape::FuncOp>(loc, fnName, fnType);
Block *block = fnOp.addEntryBlock();
- b.setInsertionPoint(block, block->end());
+ b.setInsertionPointToEnd(block);
IRMapping bvm;
if (cluster.empty()) {
bvm.map(shape, fnOp.getArgument(0));
diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp
index 2289fd1ff1364e..682eb82ac58408 100644
--- a/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp
@@ -1720,7 +1720,7 @@ struct WarpOpScfForOp : public OpRewritePattern<WarpExecuteOnLane0Op> {
auto newForOp = rewriter.create<scf::ForOp>(
forOp.getLoc(), forOp.getLowerBound(), forOp.getUpperBound(),
forOp.getStep(), newOperands);
- rewriter.setInsertionPoint(newForOp.getBody(), newForOp.getBody()->begin());
+ rewriter.setInsertionPointToStart(newForOp.getBody());
SmallVector<Value> warpInput(newForOp.getRegionIterArgs().begin(),
newForOp.getRegionIterArgs().end());
@@ -1747,7 +1747,7 @@ struct WarpOpScfForOp : public OpRewritePattern<WarpExecuteOnLane0Op> {
yieldOperands.push_back(operand);
rewriter.eraseOp(forOp.getBody()->getTerminator());
rewriter.mergeBlocks(forOp.getBody(), innerWarp.getBody(), argMapping);
- rewriter.setInsertionPoint(innerWarp.getBody(), innerWarp.getBody()->end());
+ rewriter.setInsertionPointToEnd(innerWarp.getBody());
rewriter.create<vector::YieldOp>(innerWarp.getLoc(), yieldOperands);
rewriter.setInsertionPointAfter(innerWarp);
if (!innerWarp.getResults().empty())
diff --git a/mlir/lib/Target/LLVMIR/ModuleImport.cpp b/mlir/lib/Target/LLVMIR/ModuleImport.cpp
index 1f63519373ecab..3a61a373ecaeb6 100644
--- a/mlir/lib/Target/LLVMIR/ModuleImport.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleImport.cpp
@@ -2041,7 +2041,7 @@ LogicalResult ModuleImport::processFunction(llvm::Function *func) {
// Insert the function at the end of the module.
OpBuilder::InsertionGuard guard(builder);
- builder.setInsertionPoint(mlirModule.getBody(), mlirModule.getBody()->end());
+ builder.setInsertionPointToEnd(mlirModule.getBody());
Location loc = debugImporter->translateFuncLocation(func);
LLVMFuncOp funcOp = builder.create<LLVMFuncOp>(
diff --git a/mlir/lib/Transforms/Utils/FoldUtils.cpp b/mlir/lib/Transforms/Utils/FoldUtils.cpp
index e5f78abf7fca53..c43f439525526b 100644
--- a/mlir/lib/Transforms/Utils/FoldUtils.cpp
+++ b/mlir/lib/Transforms/Utils/FoldUtils.cpp
@@ -204,7 +204,7 @@ Value OperationFolder::getOrCreateConstant(Block *block, Dialect *dialect,
// Find an insertion point for the constant.
auto *insertRegion = getInsertionRegion(interfaces, block);
auto &entry = insertRegion->front();
- rewriter.setInsertionPoint(&entry, entry.begin());
+ rewriter.setInsertionPointToStart(&entry);
// Get the constant map for the insertion region of this operation.
// Use erased location since the op is being built at the front of block.
@@ -242,7 +242,7 @@ OperationFolder::processFoldResults(Operation *op,
// insertion region.
auto *insertRegion = getInsertionRegion(interfaces, op->getBlock());
auto &entry = insertRegion->front();
- rewriter.setInsertionPoint(&entry, entry.begin());
+ rewriter.setInsertionPointToStart(&entry);
// Get the constant map for the insertion region of this operation.
auto &uniquedConstants = foldScopes[insertRegion];
More information about the Mlir-commits
mailing list