summaryrefslogtreecommitdiff
path: root/include/llvm/GlobalValue.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-06-25 14:30:31 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-06-25 14:30:31 +0000
commita0706a9ff4469b137ed6eea3f484a0152bab4c88 (patch)
tree06c3465b1a53ae509952654d3842b2d59bf80a27 /include/llvm/GlobalValue.h
parentccaddf47086742f62fb7fbf97f6509395f31b957 (diff)
downloadllvm-a0706a9ff4469b137ed6eea3f484a0152bab4c88.tar.gz
llvm-a0706a9ff4469b137ed6eea3f484a0152bab4c88.tar.bz2
llvm-a0706a9ff4469b137ed6eea3f484a0152bab4c88.tar.xz
If a constant or a function has linkonce_odr linkage and unnamed_addr, mark it
hidden. Being linkonce_odr guarantees that it is available in every dso that needs it. Being a constant/function with unnamed_addr guarantees that the copies don't have to be merged. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159136 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/GlobalValue.h')
-rw-r--r--include/llvm/GlobalValue.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/llvm/GlobalValue.h b/include/llvm/GlobalValue.h
index 8b969f3354..3b83b5a05c 100644
--- a/include/llvm/GlobalValue.h
+++ b/include/llvm/GlobalValue.h
@@ -122,6 +122,9 @@ public:
static bool isAvailableExternallyLinkage(LinkageTypes Linkage) {
return Linkage == AvailableExternallyLinkage;
}
+ static bool isLinkOnceODRLinkage(LinkageTypes Linkage) {
+ return Linkage == LinkOnceODRLinkage;
+ }
static bool isLinkOnceLinkage(LinkageTypes Linkage) {
return Linkage == LinkOnceAnyLinkage || Linkage == LinkOnceODRLinkage;
}
@@ -202,6 +205,9 @@ public:
bool hasAvailableExternallyLinkage() const {
return isAvailableExternallyLinkage(Linkage);
}
+ bool hasLinkOnceODRLinkage() const {
+ return isLinkOnceODRLinkage(Linkage);
+ }
bool hasLinkOnceLinkage() const {
return isLinkOnceLinkage(Linkage);
}