From 4366b6cede7090e6851ae064a54398963c664b38 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 30 Jul 2014 15:57:51 +0000 Subject: [PATCH] Add the missing hasLinkOnceODRLinkage predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214312 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/GlobalValue.h | 1 + lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 3 +-- lib/LTO/LTOModule.cpp | 4 +--- lib/Transforms/IPO/Inliner.cpp | 3 +-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/include/llvm/IR/GlobalValue.h b/include/llvm/IR/GlobalValue.h index 68e410ba4b8..d42d0a9c392 100644 --- a/include/llvm/IR/GlobalValue.h +++ b/include/llvm/IR/GlobalValue.h @@ -246,6 +246,7 @@ public: bool hasLinkOnceLinkage() const { return isLinkOnceLinkage(Linkage); } + bool hasLinkOnceODRLinkage() const { return isLinkOnceODRLinkage(Linkage); } bool hasWeakLinkage() const { return isWeakLinkage(Linkage); } diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 226e4204224..99179b6181b 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -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()) diff --git a/lib/LTO/LTOModule.cpp b/lib/LTO/LTOModule.cpp index 3600baa5bbf..1c8e36d743e 100644 --- a/lib/LTO/LTOModule.cpp +++ b/lib/LTO/LTOModule.cpp @@ -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()) diff --git a/lib/Transforms/IPO/Inliner.cpp b/lib/Transforms/IPO/Inliner.cpp index 9087ab23bb7..a09387832df 100644 --- a/lib/Transforms/IPO/Inliner.cpp +++ b/lib/Transforms/IPO/Inliner.cpp @@ -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);