Lines Matching refs:Arg

86 static const Value *FindSingleUseIdentifiedObject(const Value *Arg) {  in FindSingleUseIdentifiedObject()  argument
89 if (isa<ConstantData>(Arg)) in FindSingleUseIdentifiedObject()
92 if (Arg->hasOneUse()) { in FindSingleUseIdentifiedObject()
93 if (const BitCastInst *BC = dyn_cast<BitCastInst>(Arg)) in FindSingleUseIdentifiedObject()
95 if (const GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Arg)) in FindSingleUseIdentifiedObject()
98 if (IsForwarding(GetBasicARCInstKind(Arg))) in FindSingleUseIdentifiedObject()
100 cast<CallInst>(Arg)->getArgOperand(0)); in FindSingleUseIdentifiedObject()
101 if (!IsObjCIdentifiedObject(Arg)) in FindSingleUseIdentifiedObject()
103 return Arg; in FindSingleUseIdentifiedObject()
108 if (IsObjCIdentifiedObject(Arg)) { in FindSingleUseIdentifiedObject()
109 for (const User *U : Arg->users()) in FindSingleUseIdentifiedObject()
110 if (!U->use_empty() || GetRCIdentityRoot(U) != Arg) in FindSingleUseIdentifiedObject()
113 return Arg; in FindSingleUseIdentifiedObject()
264 TopDownPtrState &getPtrTopDownState(const Value *Arg) { in getPtrTopDownState() argument
265 return PerPtrTopDown[Arg]; in getPtrTopDownState()
271 BottomUpPtrState &getPtrBottomUpState(const Value *Arg) { in getPtrBottomUpState() argument
272 return PerPtrBottomUp[Arg]; in getPtrBottomUpState()
277 bottom_up_ptr_iterator findPtrBottomUpState(const Value *Arg) { in findPtrBottomUpState() argument
278 return PerPtrBottomUp.find(Arg); in findPtrBottomUpState()
514 ARCInstKind Class, const Value *Arg);
520 const Value *&Arg, ARCInstKind Class,
546 void MoveCalls(Value *Arg, RRInfo &RetainsToMove, RRInfo &ReleasesToMove,
557 Value *Arg, bool KnownSafe,
610 const Value *Arg = GetArgRCIdentityRoot(RetainRV); in OptimizeRetainRVCall() local
611 if (const Instruction *Call = dyn_cast<CallBase>(Arg)) { in OptimizeRetainRVCall()
652 Function &F, Instruction *Inst, const Value *&Arg, ARCInstKind Class, in OptimizeInlinedAutoreleaseRVCall() argument
661 Arg = GetArgRCIdentityRoot(Inst); in OptimizeInlinedAutoreleaseRVCall()
663 if (Arg != AutoreleaseRVArg) { in OptimizeInlinedAutoreleaseRVCall()
665 const PHINode *PN = dyn_cast<PHINode>(Arg); in OptimizeInlinedAutoreleaseRVCall()
706 OptimizeIndividualCallImpl(F, Release, ARCInstKind::Release, Arg); in OptimizeInlinedAutoreleaseRVCall()
819 const Value *Arg = nullptr; in OptimizeIndividualCalls() local
841 if (OptimizeInlinedAutoreleaseRVCall(F, Inst, Arg, Class, in OptimizeIndividualCalls()
852 OptimizeIndividualCallImpl(F, Inst, Class, Arg); in OptimizeIndividualCalls()
888 const Value *Arg) { in OptimizeIndividualCallImpl() argument
984 const Value *Arg = Call->getArgOperand(0); in OptimizeIndividualCallImpl() local
985 Arg = FindSingleUseIdentifiedObject(Arg); in OptimizeIndividualCallImpl()
986 if (Arg) { in OptimizeIndividualCallImpl()
1044 if (!Arg) in OptimizeIndividualCallImpl()
1045 Arg = GetArgRCIdentityRoot(Inst); in OptimizeIndividualCallImpl()
1048 if (IsNullOrUndef(Arg)) { in OptimizeIndividualCallImpl()
1072 Worklist.push_back(std::make_pair(Inst, Arg)); in OptimizeIndividualCallImpl()
1076 Arg = Pair.second; in OptimizeIndividualCallImpl()
1078 const PHINode *PN = dyn_cast<PHINode>(Arg); in OptimizeIndividualCallImpl()
1114 DepInst = findSingleDependency(NeedsPositiveRetainCount, Arg, in OptimizeIndividualCallImpl()
1119 DepInst = findSingleDependency(AutoreleasePoolBoundary, Arg, in OptimizeIndividualCallImpl()
1258 const Value *Arg = I->first; in CheckForCFGHazards() local
1269 const BottomUpPtrState &SuccS = BBI->second.getPtrBottomUpState(Arg); in CheckForCFGHazards()
1331 const Value *Arg = nullptr; in VisitInstructionBottomUp() local
1337 Arg = GetArgRCIdentityRoot(Inst); in VisitInstructionBottomUp()
1339 BottomUpPtrState &S = MyStates.getPtrBottomUpState(Arg); in VisitInstructionBottomUp()
1350 Arg = GetArgRCIdentityRoot(Inst); in VisitInstructionBottomUp()
1351 BottomUpPtrState &S = MyStates.getPtrBottomUpState(Arg); in VisitInstructionBottomUp()
1382 if (Ptr == Arg) in VisitInstructionBottomUp()
1498 const Value *Arg = nullptr; in VisitInstructionTopDown() local
1527 Arg = GetArgRCIdentityRoot(Inst); in VisitInstructionTopDown()
1528 TopDownPtrState &S = MyStates.getPtrTopDownState(Arg); in VisitInstructionTopDown()
1535 Arg = GetArgRCIdentityRoot(Inst); in VisitInstructionTopDown()
1536 TopDownPtrState &S = MyStates.getPtrTopDownState(Arg); in VisitInstructionTopDown()
1566 if (Ptr == Arg) in VisitInstructionTopDown()
1760 void ObjCARCOpt::MoveCalls(Value *Arg, RRInfo &RetainsToMove, in MoveCalls() argument
1766 Type *ArgTy = Arg->getType(); in MoveCalls()
1773 Value *MyArg = ArgTy == ParamTy ? Arg in MoveCalls()
1774 : new BitCastInst(Arg, ParamTy, "", in MoveCalls()
1790 Value *MyArg = ArgTy == ParamTy ? Arg in MoveCalls()
1791 : new BitCastInst(Arg, ParamTy, "", in MoveCalls()
1830 RRInfo &ReleasesToMove, Value *Arg, bool KnownSafe, in PairUpRetainsAndReleases() argument
2043 Value *Arg = GetArgRCIdentityRoot(Retain); in PerformCodePlacement() local
2048 bool KnownSafe = isa<Constant>(Arg) || isa<AllocaInst>(Arg); in PerformCodePlacement()
2052 if (const LoadInst *LI = dyn_cast<LoadInst>(Arg)) in PerformCodePlacement()
2065 RetainsToMove, ReleasesToMove, Arg, KnownSafe, in PerformCodePlacement()
2071 MoveCalls(Arg, RetainsToMove, ReleasesToMove, in PerformCodePlacement()
2126 Value *Arg = Call->getArgOperand(0); in OptimizeWeakCalls() local
2128 switch (PA.getAA()->alias(Arg, EarlierArg)) { in OptimizeWeakCalls()
2156 Value *Arg = Call->getArgOperand(0); in OptimizeWeakCalls() local
2158 switch (PA.getAA()->alias(Arg, EarlierArg)) { in OptimizeWeakCalls()
2207 Value *Arg = Call->getArgOperand(0); in OptimizeWeakCalls() local
2208 if (AllocaInst *Alloca = dyn_cast<AllocaInst>(Arg)) { in OptimizeWeakCalls()
2274 static CallInst *HasSafePathToPredecessorCall(const Value *Arg, in HasSafePathToPredecessorCall() argument
2278 CanChangeRetainCount, Arg, Retain->getParent(), Retain, PA)); in HasSafePathToPredecessorCall()
2281 if (!Call || Arg != Call) in HasSafePathToPredecessorCall()
2295 FindPredecessorRetainWithSafePath(const Value *Arg, BasicBlock *BB, in FindPredecessorRetainWithSafePath() argument
2299 findSingleDependency(CanChangeRetainCount, Arg, BB, Autorelease, PA)); in FindPredecessorRetainWithSafePath()
2303 GetArgRCIdentityRoot(Retain) != Arg) { in FindPredecessorRetainWithSafePath()
2314 FindPredecessorAutoreleaseWithSafePath(const Value *Arg, BasicBlock *BB, in FindPredecessorAutoreleaseWithSafePath() argument
2319 findSingleDependency(NeedsPositiveRetainCount, Arg, BB, Ret, PA)); in FindPredecessorAutoreleaseWithSafePath()
2326 if (GetArgRCIdentityRoot(Autorelease) != Arg) in FindPredecessorAutoreleaseWithSafePath()
2353 const Value *Arg = GetRCIdentityRoot(Ret->getOperand(0)); in OptimizeReturns() local
2359 FindPredecessorAutoreleaseWithSafePath(Arg, &BB, Ret, PA); in OptimizeReturns()
2365 Arg, Autorelease->getParent(), Autorelease, PA); in OptimizeReturns()
2372 CallInst *Call = HasSafePathToPredecessorCall(Arg, Retain, PA); in OptimizeReturns()