Lines Matching refs:Retain
89 bool optimizeRetainCall(Function &F, Instruction *Retain);
125 bool ObjCARCContract::optimizeRetainCall(Function &F, Instruction *Retain) { in optimizeRetainCall() argument
126 const auto *Call = dyn_cast<CallBase>(GetArgRCIdentityRoot(Retain)); in optimizeRetainCall()
129 if (Call->getParent() != Retain->getParent()) in optimizeRetainCall()
136 if (&*I != Retain) in optimizeRetainCall()
147 << *Retain << "\n"); in optimizeRetainCall()
152 cast<CallInst>(Retain)->setCalledFunction(Decl); in optimizeRetainCall()
154 LLVM_DEBUG(dbgs() << "New: " << *Retain << "\n"); in optimizeRetainCall()
168 auto *Retain = dyn_cast_or_null<CallInst>( in contractAutorelease() local
171 if (!Retain || GetBasicARCInstKind(Retain) != ARCInstKind::Retain || in contractAutorelease()
172 GetArgRCIdentityRoot(Retain) != Arg) in contractAutorelease()
183 << *Retain << "\n"); in contractAutorelease()
188 Retain->setCalledFunction(Decl); in contractAutorelease()
190 LLVM_DEBUG(dbgs() << " New RetainAutorelease: " << *Retain << "\n"); in contractAutorelease()
289 while (I != Begin && GetBasicARCInstKind(&*I) != ARCInstKind::Retain) { in findRetainForStoreStrongContraction()
299 Instruction *Retain = &*I; in findRetainForStoreStrongContraction() local
300 if (GetBasicARCInstKind(Retain) != ARCInstKind::Retain) in findRetainForStoreStrongContraction()
302 if (GetArgRCIdentityRoot(Retain) != New) in findRetainForStoreStrongContraction()
304 return Retain; in findRetainForStoreStrongContraction()
386 Instruction *Retain = in tryToContractReleaseIntoStoreStrong() local
390 if (!Retain) in tryToContractReleaseIntoStoreStrong()
401 << " Retain: " << *Retain << "\n" in tryToContractReleaseIntoStoreStrong()
426 if (&*Iter == Retain) ++Iter; in tryToContractReleaseIntoStoreStrong()
430 EraseInstruction(Retain); in tryToContractReleaseIntoStoreStrong()
449 case ARCInstKind::Retain: in tryToPeepholeInstruction()