[llvm-branch-commits] [llvm] [mlir] [OpenMP][OMPIRBuilder] Use device shared memory for arg structures (PR #150925)
Michael Kruse via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Aug 19 03:28:55 PDT 2025
================
@@ -444,6 +444,27 @@ CodeExtractor::findOrCreateBlockForHoisting(BasicBlock *CommonExitBlock) {
return CommonExitBlock;
}
+Instruction *CodeExtractor::allocateVar(BasicBlock *BB,
+ BasicBlock::iterator AllocIP,
+ Type *VarType, const Twine &Name,
+ AddrSpaceCastInst **CastedAlloc) {
+ const DataLayout &DL = BB->getModule()->getDataLayout();
+ Instruction *Alloca =
+ new AllocaInst(VarType, DL.getAllocaAddrSpace(), nullptr, Name, AllocIP);
+
+ if (CastedAlloc && ArgsInZeroAddressSpace && DL.getAllocaAddrSpace() != 0) {
+ *CastedAlloc = new AddrSpaceCastInst(
+ Alloca, PointerType::get(BB->getContext(), 0), Name + ".ascast");
+ (*CastedAlloc)->insertAfter(Alloca->getIterator());
+ }
+ return Alloca;
+}
+
+Instruction *CodeExtractor::deallocateVar(BasicBlock *, BasicBlock::iterator,
+ Value *, Type *) {
+ return nullptr;
----------------
Meinersbur wrote:
Consider a comment such as
```
// Default alloca instruction created by allocateVar is released implicitly at function exit
```
https://github.com/llvm/llvm-project/pull/150925
More information about the llvm-branch-commits
mailing list