Lines Matching defs:AI
57 StackProtector::getSSPLayout(const AllocaInst *AI) const {
58 return AI ? Layout.lookup(AI) : SSPLK_None;
129 bool StackProtector::HasAddressTaken(const Instruction *AI) {
130 for (Value::const_use_iterator UI = AI->use_begin(), UE = AI->use_end();
134 if (AI == SI->getValueOperand())
137 if (AI == SI->getOperand(0))
195 if (AllocaInst *AI = dyn_cast<AllocaInst>(II)) {
196 if (AI->isArrayAllocation()) {
203 dyn_cast<ConstantInt>(AI->getArraySize())) {
207 Layout.insert(std::make_pair(AI, SSPLK_LargeArray));
211 Layout.insert(std::make_pair(AI, SSPLK_SmallArray));
216 Layout.insert(std::make_pair(AI, SSPLK_LargeArray));
223 if (ContainsProtectableArray(AI->getAllocatedType(), IsLarge, Strong)) {
224 Layout.insert(std::make_pair(AI, IsLarge ? SSPLK_LargeArray
230 if (Strong && HasAddressTaken(AI)) {
232 Layout.insert(std::make_pair(AI, SSPLK_AddrOf));
317 AllocaInst *&AI, Value *&StackGuardVar) {
337 AI = B.CreateAlloca(PtrTy, 0, "StackGuardSlot");
340 AI);
355 AllocaInst *AI = 0; // Place on stack that stores the stack guard.
367 CreatePrologue(F, M, RI, TLI, Trip, AI, StackGuardVar);
438 LoadInst *LI2 = B.CreateLoad(AI);