-
Notifications
You must be signed in to change notification settings - Fork 15.3k
[mlir][IR][NFC] Cleanup insertion point API usage #115415
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mlir][IR][NFC] Cleanup insertion point API usage #115415
Conversation
Use `setInsertionPointToStart` / `setInsertionPointToEnd` when possible.
|
@llvm/pr-subscribers-mlir-vector @llvm/pr-subscribers-mlir-core Author: Matthias Springer (matthias-springer) ChangesUse Full diff: https://github.com/llvm/llvm-project/pull/115415.diff 11 Files Affected:
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];
|
|
@llvm/pr-subscribers-mlir-spirv Author: Matthias Springer (matthias-springer) ChangesUse Full diff: https://github.com/llvm/llvm-project/pull/115415.diff 11 Files Affected:
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];
|
|
@llvm/pr-subscribers-mlir-shape Author: Matthias Springer (matthias-springer) ChangesUse Full diff: https://github.com/llvm/llvm-project/pull/115415.diff 11 Files Affected:
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];
|
|
@llvm/pr-subscribers-mlir-gpu Author: Matthias Springer (matthias-springer) ChangesUse Full diff: https://github.com/llvm/llvm-project/pull/115415.diff 11 Files Affected:
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];
|
Use `setInsertionPointToStart` / `setInsertionPointToEnd` when possible.
Use
setInsertionPointToStart/setInsertionPointToEndwhen possible.