Lines Matching refs:TheFn
502 void applySingleImplDevirt(VTableSlotInfo &SlotInfo, Constant *TheFn,
884 Constant *TheFn, bool &IsExported) {
889 TheFn->stripPointerCasts()->getName(), OREGetter);
891 TheFn, VCallSite.CS.getCalledValue()->getType()));
939 Function *TheFn = TargetsForSlot[0].Fn;
941 if (TheFn != Target.Fn)
949 applySingleImplDevirt(SlotInfo, TheFn, IsExported);
956 if (TheFn->hasLocalLinkage()) {
957 std::string NewName = (TheFn->getName() + "$merged").str();
962 if (Comdat *C = TheFn->getComdat()) {
963 if (C->getName() == TheFn->getName()) {
972 TheFn->setLinkage(GlobalValue::ExternalLinkage);
973 TheFn->setVisibility(GlobalValue::HiddenVisibility);
974 TheFn->setName(NewName);
976 if (ValueInfo TheFnVI = ExportSummary->getValueInfo(TheFn->getGUID()))
977 // Any needed promotion of 'TheFn' has already been done during
982 Res->SingleImplName = TheFn->getName();
994 auto TheFn = TargetsForSlot[0];
996 if (TheFn != Target)
1000 auto Size = TheFn.getSummaryList().size();
1006 for (auto &S : TheFn.getSummaryList())
1012 DevirtTargets.insert(TheFn);
1014 auto &S = TheFn.getSummaryList()[0];
1015 bool IsExported = AddCalls(SlotInfo, TheFn);
1017 ExportedGUIDs.insert(TheFn.getGUID());
1028 TheFn.name(), ExportSummary.getModuleHash(S->modulePath()));
1030 LocalWPDTargetsMap[TheFn].push_back(SlotSummary);
1031 Res->SingleImplName = TheFn.name();
1034 Res->SingleImplName = TheFn.name();