[flang-commits] [flang] [mlir] [flang][OpenMP] Allow saving first block of an OMP region for allocas (PR #121886)
Tom Eccles via flang-commits
flang-commits at lists.llvm.org
Tue Jan 7 02:20:46 PST 2025
================
@@ -345,31 +345,37 @@ findAllocaInsertPoint(llvm::IRBuilderBase &builder,
allocaInsertPoint = frame.allocaInsertPoint;
return WalkResult::interrupt();
});
- if (walkResult.wasInterrupted())
- return allocaInsertPoint;
// Otherwise, insert to the entry block of the surrounding function.
- // If the current IRBuilder InsertPoint is the function's entry, it cannot
- // also be used for alloca insertion which would result in insertion order
- // confusion. Create a new BasicBlock for the Builder and use the entry block
- // for the allocs.
+ if (!walkResult.wasInterrupted()) {
+ llvm::BasicBlock &funcEntryBlock =
+ builder.GetInsertBlock()->getParent()->getEntryBlock();
+ allocaInsertPoint = llvm::OpenMPIRBuilder::InsertPointTy(
+ &funcEntryBlock, funcEntryBlock.getFirstInsertionPt());
+ }
+
+ // If the current IRBuilder insertion block is the same as the alloca
+ // insertion block, it cannot also be used for alloca insertion which would
+ // result in insertion order confusion. Create a new BasicBlock for the
+ // Builder and use the entry block for the allocs.
----------------
tblah wrote:
Shouldn't it be okay so long as the allocas land at the start of the block (as they should be anyway)?
https://github.com/llvm/llvm-project/pull/121886
More information about the flang-commits
mailing list