Lines Matching refs:F
53 void deleteFunction(Function &F) { in deleteFunction() argument
55 F.deleteBody(); in deleteFunction()
71 static void convertToLocalCopy(Module &M, Function &F) { in convertToLocalCopy() argument
72 assert(F.hasAvailableExternallyLinkage()); in convertToLocalCopy()
73 assert(!F.isDeclaration()); in convertToLocalCopy()
75 if (F.uses().end() == llvm::find_if(F.uses(), [&](Use &U) { in convertToLocalCopy()
78 return deleteFunction(F); in convertToLocalCopy()
80 auto OrigName = F.getName().str(); in convertToLocalCopy()
86 std::string NewName = getNewName(M, F); in convertToLocalCopy()
87 F.setName(NewName); in convertToLocalCopy()
88 if (auto *SP = F.getSubprogram()) in convertToLocalCopy()
89 SP->replaceLinkageName(MDString::get(F.getParent()->getContext(), NewName)); in convertToLocalCopy()
91 F.setLinkage(GlobalValue::InternalLinkage); in convertToLocalCopy()
99 Function::Create(F.getFunctionType(), GlobalValue::ExternalLinkage, in convertToLocalCopy()
100 F.getAddressSpace(), OrigName, F.getParent()); in convertToLocalCopy()
101 F.replaceUsesWithIf(Decl, in convertToLocalCopy()
143 for (Function &F : llvm::make_early_inc_range(M)) { in eliminateAvailableExternally()
144 if (F.isDeclaration() || !F.hasAvailableExternallyLinkage()) in eliminateAvailableExternally()
148 convertToLocalCopy(M, F); in eliminateAvailableExternally()
150 deleteFunction(F); in eliminateAvailableExternally()
152 F.removeDeadConstantUsers(); in eliminateAvailableExternally()