aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/IPO/ExtractGV.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2013-03-04 22:40:44 +0000
committerLang Hames <lhames@gmail.com>2013-03-04 22:40:44 +0000
commit30be8a30ccc87cf741055d0f0ffa9116e8fd5efe (patch)
tree56e92dba44b789133a1921d8d55987fba0d7752b /llvm/lib/Transforms/IPO/ExtractGV.cpp
parent743bf67caf459eb3f9ca8043b02986a00e77a8f6 (diff)
downloadllvm-30be8a30ccc87cf741055d0f0ffa9116e8fd5efe.zip
llvm-30be8a30ccc87cf741055d0f0ffa9116e8fd5efe.tar.gz
llvm-30be8a30ccc87cf741055d0f0ffa9116e8fd5efe.tar.bz2
Check isDiscardableIfUnused, rather than hasLocalLinkage, when bumping
GlobalValue linkage up to ExternalLinkage in the ExtractGV pass. This prevents linkonce and linkonce_odr symbols from being DCE'd. llvm-svn: 176459
Diffstat (limited to 'llvm/lib/Transforms/IPO/ExtractGV.cpp')
-rw-r--r--llvm/lib/Transforms/IPO/ExtractGV.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/IPO/ExtractGV.cpp b/llvm/lib/Transforms/IPO/ExtractGV.cpp
index 8a6bfc6..fa3d72d 100644
--- a/llvm/lib/Transforms/IPO/ExtractGV.cpp
+++ b/llvm/lib/Transforms/IPO/ExtractGV.cpp
@@ -60,7 +60,7 @@ namespace {
continue;
}
- bool Local = I->hasLocalLinkage();
+ bool Local = I->isDiscardableIfUnused();
if (Local)
I->setVisibility(GlobalValue::HiddenVisibility);
@@ -80,7 +80,7 @@ namespace {
continue;
}
- bool Local = I->hasLocalLinkage();
+ bool Local = I->isDiscardableIfUnused();
if (Local)
I->setVisibility(GlobalValue::HiddenVisibility);
@@ -97,7 +97,7 @@ namespace {
Module::alias_iterator CurI = I;
++I;
- if (CurI->hasLocalLinkage()) {
+ if (CurI->isDiscardableIfUnused()) {
CurI->setVisibility(GlobalValue::HiddenVisibility);
CurI->setLinkage(GlobalValue::ExternalLinkage);
}