Lines Matching refs:AI

242   AllocaSlices(const DataLayout &DL, AllocaInst &AI);
316 AllocaInst &AI; member in llvm::sroa::AllocaSlices
671 SliceBuilder(const DataLayout &DL, AllocaInst &AI, AllocaSlices &AS) in SliceBuilder() argument
673 AllocSize(DL.getTypeAllocSize(AI.getAllocatedType())), AS(AS) {} in SliceBuilder()
690 << " alloca: " << AS.AI << "\n" in insertUse()
709 << " alloca: " << AS.AI << "\n" in insertUse()
813 << " alloca: " << AS.AI << "\n" in visitStoreInst()
1031 AllocaSlices::AllocaSlices(const DataLayout &DL, AllocaInst &AI) in AllocaSlices() argument
1034 AI(AI), in AllocaSlices()
1037 SliceBuilder PB(DL, AI, *this); in AllocaSlices()
1038 SliceBuilder::PtrInfo PtrI = PB.visitPtr(AI); in AllocaSlices()
1088 OS << "Can't analyze slices for alloca: " << AI << "\n" in print()
1094 OS << "Slices of alloca: " << AI << "\n"; in print()
2615 if (AllocaInst *AI = dyn_cast<AllocaInst>(V->stripInBoundsOffsets())) in visitStoreInst() local
2616 Pass.PostPromotionWorklist.insert(AI); in visitStoreInst()
2890 if (AllocaInst *AI = in visitMemTransferInst() local
2892 assert(AI != &OldAI && AI != &NewAI && in visitMemTransferInst()
2894 Pass.Worklist.insert(AI); in visitMemTransferInst()
3564 bool SROA::presplitLoadsAndStores(AllocaInst &AI, AllocaSlices &AS) { in presplitLoadsAndStores() argument
3752 IRBuilderTy IRB(&AI); in presplitLoadsAndStores()
3771 const DataLayout &DL = AI.getModule()->getDataLayout(); in presplitLoadsAndStores()
3985 assert(OtherAI != &AI && "We can't re-split our own alloca!"); in presplitLoadsAndStores()
3990 assert(OtherAI != &AI && "We can't re-split our own alloca!"); in presplitLoadsAndStores()
4031 [&](AllocaInst *AI) { return ResplitPromotableAllocas.count(AI); }), in presplitLoadsAndStores() argument
4047 AllocaInst *SROA::rewritePartition(AllocaInst &AI, AllocaSlices &AS, in rewritePartition() argument
4053 const DataLayout &DL = AI.getModule()->getDataLayout(); in rewritePartition()
4058 if (Type *TypePartitionTy = getTypePartition(DL, AI.getAllocatedType(), in rewritePartition()
4083 if (SliceTy == AI.getAllocatedType() && P.beginOffset() == 0) { in rewritePartition()
4084 NewAI = &AI; in rewritePartition()
4089 unsigned Alignment = AI.getAlignment(); in rewritePartition()
4094 Alignment = DL.getABITypeAlignment(AI.getAllocatedType()); in rewritePartition()
4102 SliceTy, AI.getType()->getAddressSpace(), nullptr, Alignment, in rewritePartition()
4103 AI.getName() + ".sroa." + Twine(P.begin() - AS.begin()), &AI); in rewritePartition()
4105 NewAI->setDebugLoc(AI.getDebugLoc()); in rewritePartition()
4121 AllocaSliceRewriter Rewriter(DL, AS, *this, AI, *NewAI, P.beginOffset(), in rewritePartition()
4176 if (NewAI == &AI) in rewritePartition()
4190 bool SROA::splitAlloca(AllocaInst &AI, AllocaSlices &AS) { in splitAlloca() argument
4196 const DataLayout &DL = AI.getModule()->getDataLayout(); in splitAlloca()
4199 Changed |= presplitLoadsAndStores(AI, AS); in splitAlloca()
4209 uint64_t AllocaSize = DL.getTypeAllocSize(AI.getAllocatedType()); in splitAlloca()
4262 Fragment(AllocaInst *AI, uint64_t O, uint64_t S) in splitAlloca()
4263 : Alloca(AI), Offset(O), Size(S) {} in splitAlloca()
4269 if (AllocaInst *NewAI = rewritePartition(AI, AS, P)) { in splitAlloca()
4271 if (NewAI != &AI) { in splitAlloca()
4287 TinyPtrVector<DbgVariableIntrinsic *> DbgDeclares = FindDbgAddrUses(&AI); in splitAlloca()
4292 DIBuilder DIB(*AI.getModule(), /*AllowUnresolved*/ false); in splitAlloca()
4293 uint64_t AllocaSize = DL.getTypeSizeInBits(AI.getAllocatedType()); in splitAlloca()
4343 DbgDeclares.front()->getDebugLoc(), &AI); in splitAlloca()
4369 bool SROA::runOnAlloca(AllocaInst &AI) { in runOnAlloca() argument
4370 LLVM_DEBUG(dbgs() << "SROA alloca: " << AI << "\n"); in runOnAlloca()
4374 if (AI.use_empty()) { in runOnAlloca()
4375 AI.eraseFromParent(); in runOnAlloca()
4378 const DataLayout &DL = AI.getModule()->getDataLayout(); in runOnAlloca()
4381 if (AI.isArrayAllocation() || !AI.getAllocatedType()->isSized() || in runOnAlloca()
4382 DL.getTypeAllocSize(AI.getAllocatedType()) == 0) in runOnAlloca()
4390 Changed |= AggRewriter.rewrite(AI); in runOnAlloca()
4393 AllocaSlices AS(DL, AI); in runOnAlloca()
4420 Changed |= splitAlloca(AI, AS); in runOnAlloca()
4452 if (AllocaInst *AI = dyn_cast<AllocaInst>(I)) { in deleteDeadInstructions() local
4453 DeletedAllocas.insert(AI); in deleteDeadInstructions()
4454 for (DbgVariableIntrinsic *OldDII : FindDbgAddrUses(AI)) in deleteDeadInstructions()
4502 if (AllocaInst *AI = dyn_cast<AllocaInst>(I)) in runImpl() local
4503 Worklist.insert(AI); in runImpl()
4519 auto IsInSet = [&](AllocaInst *AI) { return DeletedAllocas.count(AI); }; in runImpl() argument