Lines Matching refs:AI
60 StackProtector::getSSPLayout(const AllocaInst *AI) const { in getSSPLayout()
61 return AI ? Layout.lookup(AI) : SSPLK_None; in getSSPLayout()
155 bool StackProtector::HasAddressTaken(const Instruction *AI) { in HasAddressTaken() argument
156 for (const User *U : AI->users()) { in HasAddressTaken()
158 if (AI == SI->getValueOperand()) in HasAddressTaken()
161 if (AI == SI->getOperand(0)) in HasAddressTaken()
213 if (const AllocaInst *AI = dyn_cast<AllocaInst>(&I)) { in RequiresStackProtector() local
214 if (AI->isArrayAllocation()) { in RequiresStackProtector()
220 if (const auto *CI = dyn_cast<ConstantInt>(AI->getArraySize())) { in RequiresStackProtector()
224 Layout.insert(std::make_pair(AI, SSPLK_LargeArray)); in RequiresStackProtector()
228 Layout.insert(std::make_pair(AI, SSPLK_SmallArray)); in RequiresStackProtector()
233 Layout.insert(std::make_pair(AI, SSPLK_LargeArray)); in RequiresStackProtector()
240 if (ContainsProtectableArray(AI->getAllocatedType(), IsLarge, Strong)) { in RequiresStackProtector()
241 Layout.insert(std::make_pair(AI, IsLarge ? SSPLK_LargeArray in RequiresStackProtector()
247 if (Strong && HasAddressTaken(AI)) { in RequiresStackProtector()
249 Layout.insert(std::make_pair(AI, SSPLK_AddrOf)); in RequiresStackProtector()
333 AllocaInst *&AI, Value *&StackGuardVar) { in CreatePrologue() argument
354 AI = B.CreateAlloca(PtrTy, nullptr, "StackGuardSlot"); in CreatePrologue()
357 AI); in CreatePrologue()
372 AllocaInst *AI = nullptr; // Place on stack that stores the stack guard. in InsertStackProtectors() local
384 CreatePrologue(F, M, RI, TLI, Trip, AI, StackGuardVar); in InsertStackProtectors()
454 LoadInst *LI2 = B.CreateLoad(AI); in InsertStackProtectors()