================
@@ -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
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits