Lines Matching defs:Retain
89 bool optimizeRetainCall(Function &F, Instruction *Retain);
123 bool ObjCARCContract::optimizeRetainCall(Function &F, Instruction *Retain) {
124 const auto *Call = dyn_cast<CallBase>(GetArgRCIdentityRoot(Retain));
127 if (Call->getParent() != Retain->getParent())
134 if (&*I != Retain)
145 << *Retain << "\n");
150 cast<CallInst>(Retain)->setCalledFunction(Decl);
152 LLVM_DEBUG(dbgs() << "New: " << *Retain << "\n");
166 auto *Retain = dyn_cast_or_null<CallInst>(
169 if (!Retain || GetBasicARCInstKind(Retain) != ARCInstKind::Retain ||
170 GetArgRCIdentityRoot(Retain) != Arg)
180 " Retain: "
181 << *Retain << "\n");
186 Retain->setCalledFunction(Decl);
188 LLVM_DEBUG(dbgs() << " New RetainAutorelease: " << *Retain << "\n");
290 while (I != Begin && GetBasicARCInstKind(&*I) != ARCInstKind::Retain) {
300 Instruction *Retain = &*I;
301 if (GetBasicARCInstKind(Retain) != ARCInstKind::Retain)
303 if (GetArgRCIdentityRoot(Retain) != New)
305 return Retain;
361 Instruction *Retain =
365 if (!Retain)
376 << " Retain: " << *Retain << "\n"
402 if (&*Iter == Retain) ++Iter;
406 EraseInstruction(Retain);
425 case ARCInstKind::Retain: