Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:AI

57 StackProtector::getSSPLayout(const AllocaInst *AI) const {
58 return AI ? Layout.lookup(AI) : SSPLK_None;
153 bool StackProtector::HasAddressTaken(const Instruction *AI) {
154 for (const User *U : AI->users()) {
156 if (AI == SI->getValueOperand())
159 if (AI == SI->getOperand(0))
217 if (AllocaInst *AI = dyn_cast<AllocaInst>(II)) {
218 if (AI->isArrayAllocation()) {
225 dyn_cast<ConstantInt>(AI->getArraySize())) {
229 Layout.insert(std::make_pair(AI, SSPLK_LargeArray));
233 Layout.insert(std::make_pair(AI, SSPLK_SmallArray));
238 Layout.insert(std::make_pair(AI, SSPLK_LargeArray));
245 if (ContainsProtectableArray(AI->getAllocatedType(), IsLarge, Strong)) {
246 Layout.insert(std::make_pair(AI, IsLarge ? SSPLK_LargeArray
252 if (Strong && HasAddressTaken(AI)) {
254 Layout.insert(std::make_pair(AI, SSPLK_AddrOf));
338 AllocaInst *&AI, Value *&StackGuardVar) {
358 AI = B.CreateAlloca(PtrTy, nullptr, "StackGuardSlot");
361 AI);
376 AllocaInst *AI = nullptr; // Place on stack that stores the stack guard.
388 CreatePrologue(F, M, RI, TLI, Trip, AI, StackGuardVar);
459 LoadInst *LI2 = B.CreateLoad(AI);