Home | History | Annotate | Download | only in ObjCARC

Lines Matching defs:Retain

175 /// Merge an autorelease with a retain into a fused call.
185 // Check that there are no instructions between the retain and the autorelease
187 CallInst *Retain = 0;
203 Retain = dyn_cast_or_null<CallInst>(*DependingInstructions.begin());
206 if (!Retain ||
207 GetBasicInstructionClass(Retain) != IC_Retain ||
208 GetObjCArg(Retain) != Arg)
215 "retain/autorelease. Erasing: " << *Autorelease << "\n"
216 " Old Retain: "
217 << *Retain << "\n");
220 Retain->setCalledFunction(getRetainAutoreleaseRVCallee(F.getParent()));
222 Retain->setCalledFunction(getRetainAutoreleaseCallee(F.getParent()));
224 DEBUG(dbgs() << " New Retain: "
225 << *Retain << "\n");
282 // Walk up to find the retain.
287 Instruction *Retain = I;
288 if (GetBasicInstructionClass(Retain) != IC_Retain) return;
289 if (GetObjCArg(Retain) != New) return;
317 EraseInstruction(Retain);