Lines Matching refs:F
42 void deleteFunction(Function &F) { in deleteFunction() argument
44 F.deleteBody(); in deleteFunction()
56 static void convertToLocalCopy(Module &M, Function &F) { in convertToLocalCopy() argument
57 assert(F.hasAvailableExternallyLinkage()); in convertToLocalCopy()
58 assert(!F.isDeclaration()); in convertToLocalCopy()
60 if (F.uses().end() == llvm::find_if(F.uses(), [&](Use &U) { in convertToLocalCopy()
63 return deleteFunction(F); in convertToLocalCopy()
65 auto OrigName = F.getName().str(); in convertToLocalCopy()
72 F.setName(NewName); in convertToLocalCopy()
73 if (auto *SP = F.getSubprogram()) in convertToLocalCopy()
74 SP->replaceLinkageName(MDString::get(F.getParent()->getContext(), NewName)); in convertToLocalCopy()
76 F.setLinkage(GlobalValue::InternalLinkage); in convertToLocalCopy()
84 Function::Create(F.getFunctionType(), GlobalValue::ExternalLinkage, in convertToLocalCopy()
85 F.getAddressSpace(), OrigName, F.getParent()); in convertToLocalCopy()
86 F.replaceUsesWithIf(Decl, in convertToLocalCopy()
111 for (Function &F : llvm::make_early_inc_range(M)) { in eliminateAvailableExternally()
112 if (F.isDeclaration() || !F.hasAvailableExternallyLinkage()) in eliminateAvailableExternally()
116 convertToLocalCopy(M, F); in eliminateAvailableExternally()
118 deleteFunction(F); in eliminateAvailableExternally()
120 F.removeDeadConstantUsers(); in eliminateAvailableExternally()