Lines Matching refs:TargetsForSlot
270 tryFindVirtualCallTargets(std::vector<VirtualCallTarget> &TargetsForSlot,
273 bool trySingleImplDevirt(ArrayRef<VirtualCallTarget> TargetsForSlot,
276 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
279 ArrayRef<VirtualCallTarget> TargetsForSlot,
282 ArrayRef<VirtualCallTarget> TargetsForSlot,
284 bool tryVirtualConstProp(MutableArrayRef<VirtualCallTarget> TargetsForSlot,
357 std::vector<VirtualCallTarget> &TargetsForSlot, in tryFindVirtualCallTargets() argument
387 TargetsForSlot.push_back({Fn, &TM}); in tryFindVirtualCallTargets()
391 return !TargetsForSlot.empty(); in tryFindVirtualCallTargets()
395 ArrayRef<VirtualCallTarget> TargetsForSlot, in trySingleImplDevirt() argument
399 Function *TheFn = TargetsForSlot[0].Fn; in trySingleImplDevirt()
400 for (auto &&Target : TargetsForSlot) in trySingleImplDevirt()
417 MutableArrayRef<VirtualCallTarget> TargetsForSlot, in tryEvaluateFunctionsWithArgs() argument
421 for (VirtualCallTarget &Target : TargetsForSlot) { in tryEvaluateFunctionsWithArgs()
444 IntegerType *RetType, ArrayRef<VirtualCallTarget> TargetsForSlot, in tryUniformRetValOpt() argument
448 uint64_t TheRetVal = TargetsForSlot[0].RetVal; in tryUniformRetValOpt()
449 for (const VirtualCallTarget &Target : TargetsForSlot) in tryUniformRetValOpt()
460 unsigned BitWidth, ArrayRef<VirtualCallTarget> TargetsForSlot, in tryUniqueRetValOpt() argument
465 for (const VirtualCallTarget &Target : TargetsForSlot) { in tryUniqueRetValOpt()
499 MutableArrayRef<VirtualCallTarget> TargetsForSlot, in tryVirtualConstProp() argument
502 auto RetType = dyn_cast<IntegerType>(TargetsForSlot[0].Fn->getReturnType()); in tryVirtualConstProp()
512 for (VirtualCallTarget &Target : TargetsForSlot) { in tryVirtualConstProp()
551 if (!tryEvaluateFunctionsWithArgs(TargetsForSlot, CSByConstantArg.first)) in tryVirtualConstProp()
554 if (tryUniformRetValOpt(RetType, TargetsForSlot, CSByConstantArg.second)) in tryVirtualConstProp()
557 if (tryUniqueRetValOpt(BitWidth, TargetsForSlot, CSByConstantArg.second)) in tryVirtualConstProp()
563 findLowestOffset(TargetsForSlot, /*IsAfter=*/false, BitWidth); in tryVirtualConstProp()
565 findLowestOffset(TargetsForSlot, /*IsAfter=*/true, BitWidth); in tryVirtualConstProp()
570 for (auto &&Target : TargetsForSlot) { in tryVirtualConstProp()
587 setBeforeReturnValues(TargetsForSlot, AllocBefore, BitWidth, OffsetByte, in tryVirtualConstProp()
590 setAfterReturnValues(TargetsForSlot, AllocAfter, BitWidth, OffsetByte, in tryVirtualConstProp()
813 std::vector<VirtualCallTarget> TargetsForSlot; in run() local
814 if (!tryFindVirtualCallTargets(TargetsForSlot, TypeIdMap[S.first.TypeID], in run()
818 if (trySingleImplDevirt(TargetsForSlot, S.second)) in run()
821 DidVirtualConstProp |= tryVirtualConstProp(TargetsForSlot, S.second); in run()