aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/IPO/MergeFunctions.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2019-01-11 17:56:35 +0000
committerVedant Kumar <vsk@apple.com>2019-01-11 17:56:35 +0000
commitee10ef737e58409d1c34c68ad17b568e8a50120f (patch)
tree8e643539dfe36331c633f151b3f3b0af039cdd6f /llvm/lib/Transforms/IPO/MergeFunctions.cpp
parent08fe7e02fba6206c196d5e8527f8b40bb17941ad (diff)
downloadllvm-ee10ef737e58409d1c34c68ad17b568e8a50120f.zip
llvm-ee10ef737e58409d1c34c68ad17b568e8a50120f.tar.gz
llvm-ee10ef737e58409d1c34c68ad17b568e8a50120f.tar.bz2
[MergeFunc] Erase unused duplicate functions if they are discardable
MergeFunc only deletes unused duplicate functions if they have local linkage, but it should be safe to relax this to any "discardable if unused" linkage type. Differential Revision: https://reviews.llvm.org/D56574 llvm-svn: 350939
Diffstat (limited to 'llvm/lib/Transforms/IPO/MergeFunctions.cpp')
-rw-r--r--llvm/lib/Transforms/IPO/MergeFunctions.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/IPO/MergeFunctions.cpp b/llvm/lib/Transforms/IPO/MergeFunctions.cpp
index 30fe9bbb..11efe95 100644
--- a/llvm/lib/Transforms/IPO/MergeFunctions.cpp
+++ b/llvm/lib/Transforms/IPO/MergeFunctions.cpp
@@ -845,7 +845,7 @@ void MergeFunctions::mergeTwoFunctions(Function *F, Function *G) {
// If G was internal then we may have replaced all uses of G with F. If so,
// stop here and delete G. There's no need for a thunk. (See note on
// MergeFunctionsPDI above).
- if (G->hasLocalLinkage() && G->use_empty() && !MergeFunctionsPDI) {
+ if (G->isDiscardableIfUnused() && G->use_empty() && !MergeFunctionsPDI) {
G->eraseFromParent();
++NumFunctionsMerged;
return;