Add the missing hasLinkOnceODRLinkage predicate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214312 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2014-07-30 15:57:51 +00:00
parent d59fa04f04
commit 4366b6cede
4 changed files with 4 additions and 7 deletions

View File

@ -246,6 +246,7 @@ public:
bool hasLinkOnceLinkage() const {
return isLinkOnceLinkage(Linkage);
}
bool hasLinkOnceODRLinkage() const { return isLinkOnceODRLinkage(Linkage); }
bool hasWeakLinkage() const {
return isWeakLinkage(Linkage);
}

View File

@ -253,8 +253,7 @@ bool AsmPrinter::doInitialization(Module &M) {
}
static bool canBeHidden(const GlobalValue *GV, const MCAsmInfo &MAI) {
GlobalValue::LinkageTypes Linkage = GV->getLinkage();
if (Linkage != GlobalValue::LinkOnceODRLinkage)
if (!GV->hasLinkOnceODRLinkage())
return false;
if (!MAI.hasWeakDefCanBeHiddenDirective())

View File

@ -349,9 +349,7 @@ void LTOModule::addDefinedFunctionSymbol(const char *Name, const Function *F) {
static bool canBeHidden(const GlobalValue *GV) {
// FIXME: this is duplicated with another static function in AsmPrinter.cpp
GlobalValue::LinkageTypes L = GV->getLinkage();
if (L != GlobalValue::LinkOnceODRLinkage)
if (!GV->hasLinkOnceODRLinkage())
return false;
if (GV->hasUnnamedAddr())

View File

@ -357,8 +357,7 @@ bool Inliner::shouldInline(CallSite CS) {
// FIXME: All of this logic should be sunk into getInlineCost. It relies on
// the internal implementation of the inline cost metrics rather than
// treating them as truly abstract units etc.
if (Caller->hasLocalLinkage() ||
Caller->getLinkage() == GlobalValue::LinkOnceODRLinkage) {
if (Caller->hasLocalLinkage() || Caller->hasLinkOnceODRLinkage()) {
int TotalSecondaryCost = 0;
// The candidate cost to be imposed upon the current function.
int CandidateCost = IC.getCost() - (InlineConstants::CallPenalty + 1);