Lines Matching defs:AI
165 bool StackProtector::HasAddressTaken(const Instruction *AI,
168 for (const User *U : AI->users()) {
177 if (AI == cast<StoreInst>(I)->getValueOperand())
183 if (AI == cast<AtomicCmpXchgInst>(I)->getNewValOperand())
187 if (AI == cast<PtrToIntInst>(I)->getOperand(0))
305 if (const AllocaInst *AI = dyn_cast<AllocaInst>(&I)) {
306 if (AI->isArrayAllocation()) {
315 if (const auto *CI = dyn_cast<ConstantInt>(AI->getArraySize())) {
319 Layout.insert(std::make_pair(AI,
325 Layout.insert(std::make_pair(AI,
332 Layout.insert(std::make_pair(AI,
341 if (ContainsProtectableArray(AI->getAllocatedType(), IsLarge, Strong)) {
342 Layout.insert(std::make_pair(AI, IsLarge
356 if (Strong && HasAddressTaken(AI, M->getDataLayout().getTypeAllocSize(
357 AI->getAllocatedType()))) {
359 Layout.insert(std::make_pair(AI, MachineFrameInfo::SSPLK_AddrOf));
415 const TargetLoweringBase *TLI, AllocaInst *&AI) {
419 AI = B.CreateAlloca(PtrTy, nullptr, "StackGuardSlot");
423 {GuardSlot, AI});
441 AllocaInst *AI = nullptr; // Place on stack that stores the stack guard.
452 SupportsSelectionDAGSP &= CreatePrologue(F, M, RI, TLI, AI);
462 if (!AI) {
465 AI = cast<AllocaInst>(SPCall->getArgOperand(1));
480 LoadInst *Guard = B.CreateLoad(B.getInt8PtrTy(), AI, true, "Guard");
535 LoadInst *LI2 = B.CreateLoad(B.getInt8PtrTy(), AI, true);
588 const AllocaInst *AI = MFI.getObjectAllocation(I);
589 if (!AI)
592 SSPLayoutMap::const_iterator LI = Layout.find(AI);