Lines Matching defs:TargetsForSlot
648 tryFindVirtualCallTargets(std::vector<VirtualCallTarget> &TargetsForSlot,
656 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
662 void tryICallBranchFunnel(MutableArrayRef<VirtualCallTarget> TargetsForSlot,
667 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
672 bool tryUniformRetValOpt(MutableArrayRef<VirtualCallTarget> TargetsForSlot,
704 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
711 bool tryVirtualConstProp(MutableArrayRef<VirtualCallTarget> TargetsForSlot,
774 bool tryFindVirtualCallTargets(std::vector<ValueInfo> &TargetsForSlot,
778 bool trySingleImplDevirt(MutableArrayRef<ValueInfo> TargetsForSlot,
1091 std::vector<VirtualCallTarget> &TargetsForSlot,
1129 TargetsForSlot.push_back({GV, &TM});
1133 return !TargetsForSlot.empty();
1137 std::vector<ValueInfo> &TargetsForSlot,
1188 TargetsForSlot.push_back(VTP.FuncVI);
1193 return !TargetsForSlot.empty();
1322 MutableArrayRef<VirtualCallTarget> TargetsForSlot, VTableSlotInfo &SlotInfo,
1326 auto *TheFn = TargetsForSlot[0].Fn;
1327 for (auto &&Target : TargetsForSlot)
1333 TargetsForSlot[0].WasDevirt = true;
1374 bool DevirtIndex::trySingleImplDevirt(MutableArrayRef<ValueInfo> TargetsForSlot,
1381 auto TheFn = TargetsForSlot[0];
1382 for (auto &&Target : TargetsForSlot)
1437 MutableArrayRef<VirtualCallTarget> TargetsForSlot, VTableSlotInfo &SlotInfo,
1443 if (TargetsForSlot.size() > ClThreshold)
1474 for (auto &T : TargetsForSlot) {
1580 MutableArrayRef<VirtualCallTarget> TargetsForSlot,
1584 for (VirtualCallTarget &Target : TargetsForSlot) {
1630 MutableArrayRef<VirtualCallTarget> TargetsForSlot, CallSiteInfo &CSInfo,
1634 uint64_t TheRetVal = TargetsForSlot[0].RetVal;
1635 for (const VirtualCallTarget &Target : TargetsForSlot)
1644 applyUniformRetValOpt(CSInfo, TargetsForSlot[0].Fn->getName(), TheRetVal);
1646 for (auto &&Target : TargetsForSlot)
1751 unsigned BitWidth, MutableArrayRef<VirtualCallTarget> TargetsForSlot,
1757 for (const VirtualCallTarget &Target : TargetsForSlot) {
1778 applyUniqueRetValOpt(CSInfo, TargetsForSlot[0].Fn->getName(), IsOne,
1783 for (auto &&Target : TargetsForSlot)
1824 MutableArrayRef<VirtualCallTarget> TargetsForSlot, VTableSlotInfo &SlotInfo,
1829 auto Fn = dyn_cast<Function>(TargetsForSlot[0].Fn);
1850 for (VirtualCallTarget &Target : TargetsForSlot) {
1867 if (!tryEvaluateFunctionsWithArgs(TargetsForSlot, CSByConstantArg.first))
1874 if (tryUniformRetValOpt(TargetsForSlot, CSByConstantArg.second, ResByArg))
1877 if (tryUniqueRetValOpt(BitWidth, TargetsForSlot, CSByConstantArg.second,
1884 findLowestOffset(TargetsForSlot, /*IsAfter=*/false, BitWidth);
1886 findLowestOffset(TargetsForSlot, /*IsAfter=*/true, BitWidth);
1891 for (auto &&Target : TargetsForSlot) {
1908 setBeforeReturnValues(TargetsForSlot, AllocBefore, BitWidth, OffsetByte,
1911 setAfterReturnValues(TargetsForSlot, AllocAfter, BitWidth, OffsetByte,
1915 for (auto &&Target : TargetsForSlot)
1931 TargetsForSlot[0].Fn->getName(), ByteConst, BitConst);
2396 // TargetsForSlot.
2397 std::vector<VirtualCallTarget> TargetsForSlot;
2412 if (tryFindVirtualCallTargets(TargetsForSlot, TypeMemberInfos,
2415 if (!trySingleImplDevirt(ExportSummary, TargetsForSlot, S.second, Res)) {
2417 tryVirtualConstProp(TargetsForSlot, S.second, Res, S.first);
2419 tryICallBranchFunnel(TargetsForSlot, S.second, Res, S.first);
2424 for (const auto &T : TargetsForSlot)
2542 // TargetsForSlot.
2543 std::vector<ValueInfo> TargetsForSlot;
2551 if (tryFindVirtualCallTargets(TargetsForSlot, *TidSummary,
2554 if (!trySingleImplDevirt(TargetsForSlot, S.first, S.second, Res,