Lines Matching defs:TargetsForSlot
613 tryFindVirtualCallTargets(std::vector<VirtualCallTarget> &TargetsForSlot,
621 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
627 void tryICallBranchFunnel(MutableArrayRef<VirtualCallTarget> TargetsForSlot,
632 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
637 bool tryUniformRetValOpt(MutableArrayRef<VirtualCallTarget> TargetsForSlot,
669 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
676 bool tryVirtualConstProp(MutableArrayRef<VirtualCallTarget> TargetsForSlot,
739 bool tryFindVirtualCallTargets(std::vector<ValueInfo> &TargetsForSlot,
743 bool trySingleImplDevirt(MutableArrayRef<ValueInfo> TargetsForSlot,
1056 std::vector<VirtualCallTarget> &TargetsForSlot,
1094 TargetsForSlot.push_back({GV, &TM});
1098 return !TargetsForSlot.empty();
1102 std::vector<ValueInfo> &TargetsForSlot,
1153 TargetsForSlot.push_back(VTP.FuncVI);
1158 return !TargetsForSlot.empty();
1279 MutableArrayRef<VirtualCallTarget> TargetsForSlot, VTableSlotInfo &SlotInfo,
1283 auto *TheFn = TargetsForSlot[0].Fn;
1284 for (auto &&Target : TargetsForSlot)
1290 TargetsForSlot[0].WasDevirt = true;
1331 bool DevirtIndex::trySingleImplDevirt(MutableArrayRef<ValueInfo> TargetsForSlot,
1338 auto TheFn = TargetsForSlot[0];
1339 for (auto &&Target : TargetsForSlot)
1394 MutableArrayRef<VirtualCallTarget> TargetsForSlot, VTableSlotInfo &SlotInfo,
1400 if (TargetsForSlot.size() > ClThreshold)
1431 for (auto &T : TargetsForSlot) {
1539 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
1543 for (VirtualCallTarget &Target : TargetsForSlot) {
1589 MutableArrayRef<VirtualCallTarget> TargetsForSlot, CallSiteInfo &CSInfo,
1593 uint64_t TheRetVal = TargetsForSlot[0].RetVal;
1594 for (const VirtualCallTarget &Target : TargetsForSlot)
1603 applyUniformRetValOpt(CSInfo, TargetsForSlot[0].Fn->getName(), TheRetVal);
1605 for (auto &&Target : TargetsForSlot)
1710 unsigned BitWidth, MutableArrayRef<VirtualCallTarget> TargetsForSlot,
1716 for (const VirtualCallTarget &Target : TargetsForSlot) {
1737 applyUniqueRetValOpt(CSInfo, TargetsForSlot[0].Fn->getName(), IsOne,
1742 for (auto &&Target : TargetsForSlot)
1783 MutableArrayRef<VirtualCallTarget> TargetsForSlot, VTableSlotInfo &SlotInfo,
1788 auto Fn = dyn_cast<Function>(TargetsForSlot[0].Fn);
1809 for (VirtualCallTarget &Target : TargetsForSlot) {
1826 if (!tryEvaluateFunctionsWithArgs(TargetsForSlot, CSByConstantArg.first))
1833 if (tryUniformRetValOpt(TargetsForSlot, CSByConstantArg.second, ResByArg))
1836 if (tryUniqueRetValOpt(BitWidth, TargetsForSlot, CSByConstantArg.second,
1843 findLowestOffset(TargetsForSlot, /*IsAfter=*/false, BitWidth);
1845 findLowestOffset(TargetsForSlot, /*IsAfter=*/true, BitWidth);
1850 for (auto &&Target : TargetsForSlot) {
1867 setBeforeReturnValues(TargetsForSlot, AllocBefore, BitWidth, OffsetByte,
1870 setAfterReturnValues(TargetsForSlot, AllocAfter, BitWidth, OffsetByte,
1874 for (auto &&Target : TargetsForSlot)
1890 TargetsForSlot[0].Fn->getName(), ByteConst, BitConst);
2351 // TargetsForSlot.
2352 std::vector<VirtualCallTarget> TargetsForSlot;
2367 if (tryFindVirtualCallTargets(TargetsForSlot, TypeMemberInfos,
2370 if (!trySingleImplDevirt(ExportSummary, TargetsForSlot, S.second, Res)) {
2372 tryVirtualConstProp(TargetsForSlot, S.second, Res, S.first);
2374 tryICallBranchFunnel(TargetsForSlot, S.second, Res, S.first);
2379 for (const auto &T : TargetsForSlot)
2497 // TargetsForSlot.
2498 std::vector<ValueInfo> TargetsForSlot;
2506 if (tryFindVirtualCallTargets(TargetsForSlot, *TidSummary,
2509 if (!trySingleImplDevirt(TargetsForSlot, S.first, S.second, Res,