Home
last modified time | relevance | path

Searched refs:AllocaInst (Results 1 – 25 of 232) sorted by relevance

12345678910

/llvm-project-15.0.7/llvm/include/llvm/Transforms/Scalar/
H A DSROA.h26 class AllocaInst; variable
76 SetVector<AllocaInst *, SmallVector<AllocaInst *, 16>> Worklist;
91 SetVector<AllocaInst *, SmallVector<AllocaInst *, 16>> PostPromotionWorklist;
94 std::vector<AllocaInst *> PromotableAllocas;
125 bool presplitLoadsAndStores(AllocaInst &AI, sroa::AllocaSlices &AS);
126 AllocaInst *rewritePartition(AllocaInst &AI, sroa::AllocaSlices &AS,
128 bool splitAlloca(AllocaInst &AI, sroa::AllocaSlices &AS);
129 bool runOnAlloca(AllocaInst &AI);
131 bool deleteDeadInstructions(SmallPtrSetImpl<AllocaInst *> &DeletedAllocas);
/llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/
H A DMemoryTaggingSupport.h26 class AllocaInst; variable
50 AllocaInst *AI;
57 MapVector<AllocaInst *, AllocaInfo> AllocasToInstrument;
65 StackInfoBuilder(std::function<bool(const AllocaInst &)> IsInterestingAlloca) in StackInfoBuilder()
73 std::function<bool(const AllocaInst &)> IsInterestingAlloca;
76 uint64_t getAllocaSizeInBytes(const AllocaInst &AI);
H A DPromoteMemToReg.h20 class AllocaInst; variable
30 bool isAllocaPromotable(const AllocaInst *AI);
39 void PromoteMemToReg(ArrayRef<AllocaInst *> Allocas, DominatorTree &DT,
H A DCodeExtractor.h25 class AllocaInst; variable
48 SmallVector<AllocaInst *, 16> Allocas;
65 ArrayRef<AllocaInst *> getAllocas() const { return Allocas; } in getAllocas()
69 bool doesBlockContainClobberOfAddr(BasicBlock &BB, AllocaInst *Addr) const;
H A DASanStackFrameLayout.h19 class AllocaInst; variable
37 AllocaInst *AI; // The actual AllocaInst.
/llvm-project-15.0.7/llvm/lib/Transforms/Utils/
H A DDemoteRegToStack.cpp22 AllocaInst *llvm::DemoteRegToStack(Instruction &I, bool VolatileLoads, in DemoteRegToStack()
33 AllocaInst *Slot; in DemoteRegToStack()
35 Slot = new AllocaInst(I.getType(), DL.getAllocaAddrSpace(), nullptr, in DemoteRegToStack()
38 Slot = new AllocaInst(I.getType(), DL.getAllocaAddrSpace(), nullptr, in DemoteRegToStack()
109 AllocaInst *llvm::DemotePHIToStack(PHINode *P, Instruction *AllocaPoint) { in DemotePHIToStack()
118 AllocaInst *Slot; in DemotePHIToStack()
120 Slot = new AllocaInst(P->getType(), DL.getAllocaAddrSpace(), nullptr, in DemotePHIToStack()
124 Slot = new AllocaInst(P->getType(), DL.getAllocaAddrSpace(), nullptr, in DemotePHIToStack()
H A DPromoteMemoryToRegister.cpp63 bool llvm::isAllocaPromotable(const AllocaInst *AI) { in isAllocaPromotable()
126 void AnalyzeAlloca(AllocaInst *AI) { in AnalyzeAlloca()
224 std::vector<AllocaInst *> Allocas;
235 DenseMap<AllocaInst *, unsigned> AllocaLookup;
265 PromoteMem2Reg(ArrayRef<AllocaInst *> Allocas, DominatorTree &DT, in PromoteMem2Reg()
288 void ComputeLiveInBlocks(AllocaInst *AI, AllocaInfo &Info,
312 static void removeIntrinsicUsers(AllocaInst *AI) { in removeIntrinsicUsers()
557 AllocaInst *AI = Allocas[AllocaNum]; in run()
787 AllocaInst *AI, AllocaInfo &Info, in ComputeLiveInBlocks()
950 AllocaInst *Src = dyn_cast<AllocaInst>(LI->getPointerOperand()); in RenamePass()
[all …]
H A DMemoryTaggingSupport.cpp116 if (AllocaInst *AI = dyn_cast<AllocaInst>(&Inst)) { in visit()
125 AllocaInst *AI = findAllocaForValue(II->getArgOperand(1)); in visit()
140 if (auto *AI = dyn_cast_or_null<AllocaInst>(V)) { in visit()
155 uint64_t getAllocaSizeInBytes(const AllocaInst &AI) { in getAllocaSizeInBytes()
180 new AllocaInst(TypeWithPadding, Info.AI->getType()->getAddressSpace(), in alignAndPadAlloca()
H A DMem2Reg.cpp37 std::vector<AllocaInst *> Allocas; in promoteMemoryToRegister()
47 if (AllocaInst *AI = dyn_cast<AllocaInst>(I)) // Is it an alloca? in promoteMemoryToRegister()
/llvm-project-15.0.7/llvm/lib/CodeGen/
H A DSafeStack.cpp168 AllocaInst *
384 if (auto AI = dyn_cast<AllocaInst>(&I)) { in findInsts()
428 AllocaInst *
443 AllocaInst *DynamicTop = nullptr; in createStackRestorePoints()
490 AllocaInst *StackGuardSlot) { in moveStaticAllocasToUnsafeStack()
531 for (AllocaInst *AI : StaticAllocas) { in moveStaticAllocasToUnsafeStack()
596 for (AllocaInst *AI : StaticAllocas) { in moveStaticAllocasToUnsafeStack()
656 ArrayRef<AllocaInst *> DynamicAllocas) { in moveDynamicAllocasToUnsafeStack()
659 for (AllocaInst *AI : DynamicAllocas) { in moveDynamicAllocasToUnsafeStack()
759 SmallVector<AllocaInst *, 16> StaticAllocas; in run()
[all …]
H A DGCRootLowering.cpp126 if (isa<AllocaInst>(I) || isa<GetElementPtrInst>(I) || isa<StoreInst>(I) || in CouldBecomeSafePoint()
140 static bool InsertRootInitializers(Function &F, ArrayRef<AllocaInst *> Roots) { in InsertRootInitializers()
143 while (isa<AllocaInst>(IP)) in InsertRootInitializers()
147 SmallPtrSet<AllocaInst *, 16> InitedRoots; in InsertRootInitializers()
150 if (AllocaInst *AI = in InsertRootInitializers()
151 dyn_cast<AllocaInst>(SI->getOperand(1)->stripPointerCasts())) in InsertRootInitializers()
157 for (AllocaInst *Root : Roots) in InsertRootInitializers()
189 SmallVector<AllocaInst *, 32> Roots; in DoLowering()
223 cast<AllocaInst>(CI->getArgOperand(0)->stripPointerCasts())); in DoLowering()
H A DStackColoring.cpp703 const AllocaInst *Allocation = MFI->getObjectAllocation(Slot); in collectMarkers()
785 const AllocaInst *Allocation = MFI->getObjectAllocation(Slot); in collectMarkers()
949 DenseMap<const AllocaInst*, const AllocaInst*> Allocas; in remapInstructions()
952 SmallPtrSet<const AllocaInst*, 32> MergedAllocas; in remapInstructions()
955 const AllocaInst *From = MFI->getObjectAllocation(SI.first); in remapInstructions()
956 const AllocaInst *To = MFI->getObjectAllocation(SI.second); in remapInstructions()
963 const_cast<AllocaInst*>(To)->moveBefore(const_cast<AllocaInst*>(From)); in remapInstructions()
971 Instruction *Inst = const_cast<AllocaInst *>(To); in remapInstructions()
996 AllocaInst *FromAI = const_cast<AllocaInst *>(From); in remapInstructions()
1025 const AllocaInst *AI = dyn_cast_or_null<AllocaInst>(MMO->getValue()); in remapInstructions()
[all …]
H A DShadowStackGCLowering.cpp63 std::vector<std::pair<CallInst *, AllocaInst *>> Roots;
164 for (const std::pair<CallInst *, AllocaInst *> &Root : Roots) in GetConcreteStackEntryType()
239 SmallVector<std::pair<CallInst *, AllocaInst *>, 16> MetaRoots; in CollectRoots()
246 std::pair<CallInst *, AllocaInst *> Pair = std::make_pair( in CollectRoots()
248 cast<AllocaInst>(CI->getArgOperand(0)->stripPointerCasts())); in CollectRoots()
323 while (isa<AllocaInst>(IP)) in runOnFunction()
341 AllocaInst *OriginalAlloca = Roots[I].second; in runOnFunction()
379 for (std::pair<CallInst *, AllocaInst *> &Root : Roots) { in runOnFunction()
H A DStackProtector.cpp306 if (const AllocaInst *AI = dyn_cast<AllocaInst>(&I)) { in RequiresStackProtector()
418 const TargetLoweringBase *TLI, AllocaInst *&AI) { in CreatePrologue()
443 AllocaInst *AI = nullptr; // Place on stack that stores the stack guard. in InsertStackProtectors()
466 AI = cast<AllocaInst>(SPCall->getArgOperand(1)); in InsertStackProtectors()
607 const AllocaInst *AI = MFI.getObjectAllocation(I); in copyToMachineFrameInfo()
/llvm-project-15.0.7/llvm/include/llvm/Analysis/
H A DStackLifetime.h23 class AllocaInst; variable
104 ArrayRef<const AllocaInst *> Allocas;
106 DenseMap<const AllocaInst *, unsigned> AllocaNumbering;
135 StackLifetime(const Function &F, ArrayRef<const AllocaInst *> Allocas,
152 const LiveRange &getLiveRange(const AllocaInst *AI) const;
158 bool isAliveAfter(const AllocaInst *AI, const Instruction *I) const;
/llvm-project-15.0.7/llvm/lib/Analysis/
H A DStackLifetime.cpp35 StackLifetime::getLiveRange(const AllocaInst *AI) const { in getLiveRange()
45 bool StackLifetime::isAliveAfter(const AllocaInst *AI, in isAliveAfter()
64 static const AllocaInst *findMatchingAlloca(const IntrinsicInst &II, in findMatchingAlloca()
66 const AllocaInst *AI = findAllocaForValue(II.getArgOperand(1), true); in findMatchingAlloca()
99 const AllocaInst *AI = findMatchingAlloca(*II, DL); in collectMarkers()
303 ArrayRef<const AllocaInst *> Allocas, in StackLifetime()
387 SmallVector<const AllocaInst *, 8> Allocas; in run()
389 if (const AllocaInst *AI = dyn_cast<AllocaInst>(&I)) in run()
H A DStackSafetyAnalysis.cpp154 ConstantRange getStaticAllocaSizeRange(const AllocaInst &AI) { in getStaticAllocaSizeRange()
184 std::map<const AllocaInst *, UseInfo<CalleeTy>> Allocas;
210 if (const AllocaInst *AI = dyn_cast<AllocaInst>(&I)) { in print()
232 SmallPtrSet<const AllocaInst *, 8> SafeAllocas;
258 bool isSafeAccess(const Use &U, AllocaInst *AI, Value *V);
259 bool isSafeAccess(const Use &U, AllocaInst *AI, TypeSize AccessSize);
399 AllocaInst *AI = dyn_cast<AllocaInst>(Ptr); in analyzeAllUses()
528 SmallVector<AllocaInst *, 64> Allocas; in run()
530 if (auto *AI = dyn_cast<AllocaInst>(&I)) in run()
891 const AllocaInst *AI = KV.first; in getInfo()
[all …]
/llvm-project-15.0.7/llvm/unittests/Transforms/Utils/
H A DCallPromotionUtilsTest.cpp59 auto *AI = dyn_cast<AllocaInst>(Inst); in TEST()
193 auto *AI = dyn_cast<AllocaInst>(Inst); in TEST()
235 auto *AI = dyn_cast<AllocaInst>(Inst); in TEST()
294 auto *AI = dyn_cast<AllocaInst>(Inst); in TEST()
312 AI = dyn_cast<AllocaInst>(Inst); in TEST()
362 auto *AI = dyn_cast<AllocaInst>(Inst); in TEST()
/llvm-project-15.0.7/llvm/lib/Target/AArch64/
H A DAArch64StackTagging.cpp309 bool isInterestingAlloca(const AllocaInst &AI);
311 void tagAlloca(AllocaInst *AI, Instruction *InsertBefore, Value *Ptr,
313 void untagAlloca(AllocaInst *AI, Instruction *InsertBefore, uint64_t Size);
319 const MapVector<AllocaInst *, memtag::AllocaInfo> &Allocas,
416 bool AArch64StackTagging::isInterestingAlloca(const AllocaInst &AI) { in isInterestingAlloca()
432 void AArch64StackTagging::tagAlloca(AllocaInst *AI, Instruction *InsertBefore, in tagAlloca()
454 void AArch64StackTagging::untagAlloca(AllocaInst *AI, Instruction *InsertBefore, in untagAlloca()
462 const MapVector<AllocaInst *, memtag::AllocaInfo> &AllocasToInstrument, in insertBaseTaggedPointer() argument
468 AllocaInst *AI = Info.AI; in insertBaseTaggedPointer()
499 [this](const AllocaInst &AI) { return isInterestingAlloca(AI); }); in runOnFunction()
[all …]
/llvm-project-15.0.7/llvm/lib/Target/AMDGPU/
H A DAMDGPUPromoteAlloca.cpp59 bool handleAlloca(AllocaInst &I, bool SufficientLDS);
101 bool handleAlloca(AllocaInst &I, bool SufficientLDS);
193 SmallVector<AllocaInst *, 16> Allocas; in run()
195 if (AllocaInst *AI = dyn_cast<AllocaInst>(&I)) in run()
199 for (AllocaInst *AI : Allocas) { in run()
349 static Value *GEPToVectorIndex(GetElementPtrInst *GEP, AllocaInst *Alloca, in GEPToVectorIndex()
568 if (!isa<AllocaInst>(OtherObj)) in binaryOpIsDerivedFromSameAlloca()
1070 bool handlePromoteAllocaToVector(AllocaInst &I, unsigned MaxVGPRs) { in handlePromoteAllocaToVector()
1105 SmallVector<AllocaInst *, 16> Allocas; in promoteAllocasToVector()
1107 if (AllocaInst *AI = dyn_cast<AllocaInst>(&I)) in promoteAllocasToVector()
[all …]
/llvm-project-15.0.7/polly/include/polly/CodeGen/
H A DLoopGenerators.h21 using llvm::AllocaInst;
192 AllocaInst *storeValuesIntoStruct(SetVector<Value *> &Values);
240 createSubFn(Value *Stride, AllocaInst *Struct, SetVector<Value *> UsedValues,
/llvm-project-15.0.7/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/
H A DRenderScriptx86ABIFixups.cpp164 llvm::AllocaInst *return_value_alloc = new llvm::AllocaInst( in fixupX86StructRetCalls()
176 llvm::AllocaInst *new_func_ptr = in fixupX86StructRetCalls()
177 new llvm::AllocaInst(new_func_ptr_type, DL.getAllocaAddrSpace(), in fixupX86StructRetCalls()
/llvm-project-15.0.7/llvm/lib/Target/NVPTX/
H A DNVPTXAllocaHoisting.cpp47 AllocaInst *allocaInst = dyn_cast<AllocaInst>(BI++); in runOnFunction()
/llvm-project-15.0.7/llvm/lib/Transforms/Coroutines/
H A DCoroFrame.cpp304 AllocaInst *Alloca;
307 AllocaInfo(AllocaInst *Alloca, in AllocaInfo()
613 AllocaInst *Alloca = A.Alloca; in addFieldForAllocas()
652 auto IsAllocaInferenre = [&](const AllocaInst *AI1, const AllocaInst *AI2) { in addFieldForAllocas()
670 AllocaInst *Alloca = A.Alloca; in addFieldForAllocas()
1743 AllocaInst *Alloca = P.Alloca; in insertSpills()
1763 AllocaInst *Alloca = A.Alloca; in insertSpills()
1785 AllocaInst *Alloca = A.Alloca; in insertSpills()
2456 AllocaInst* AI = dyn_cast<AllocaInst>(&I); in sinkLifetimeStartMarkers()
2530 auto *AI = dyn_cast<AllocaInst>(&I); in collectFrameAllocas()
[all …]
/llvm-project-15.0.7/llvm/include/llvm/CodeGen/
H A DMachineFrameInfo.h27 class AllocaInst; variable
163 const AllocaInst *Alloca;
184 bool IsImmutable, bool IsSpillSlot, const AllocaInst *Alloca,
502 const AllocaInst* getObjectAllocation(int ObjectIdx) const { in getObjectAllocation()
761 const AllocaInst *Alloca = nullptr, uint8_t ID = 0);
776 int CreateVariableSizedObject(Align Alignment, const AllocaInst *Alloca);

12345678910