diff options
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/ProfileData/ProfileCommon.h | 8 | ||||
-rw-r--r-- | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 16 | ||||
-rw-r--r-- | llvm/lib/ProfileData/ProfileSummary.cpp | 21 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/partition-sections.ll | 31 |
4 files changed, 0 insertions, 76 deletions
diff --git a/llvm/include/llvm/ProfileData/ProfileCommon.h b/llvm/include/llvm/ProfileData/ProfileCommon.h index 76631146dda..e7d69431542 100644 --- a/llvm/include/llvm/ProfileData/ProfileCommon.h +++ b/llvm/include/llvm/ProfileData/ProfileCommon.h @@ -21,8 +21,6 @@ #define LLVM_PROFILEDATA_PROFILE_COMMON_H namespace llvm { -class Function; -class Module; namespace IndexedInstrProf { struct Summary; } @@ -30,8 +28,6 @@ namespace sampleprof { class FunctionSamples; } struct InstrProfRecord; -inline const char *getHotSectionPrefix() { return ".hot"; } -inline const char *getUnlikelySectionPrefix() { return ".unlikely"; } // The profile summary is one or more (Cutoff, MinCount, NumCounts) triplets. // The semantics of counts depend on the type of profile. For instrumentation // profile, counts are block counts and for sample profile, counts are @@ -70,10 +66,6 @@ protected: public: static const int Scale = 1000000; - // \brief Returns true if F is a hot function. - static bool isFunctionHot(const Function *F); - // \brief Returns true if F is unlikley executed. - static bool isFunctionUnlikely(const Function *F); inline std::vector<ProfileSummaryEntry> &getDetailedSummary(); void computeDetailedSummary(); /// \brief A vector of useful cutoff values for detailed summary. diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 4229741cf5a..6756e9df384 100644 --- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -34,7 +34,6 @@ #include "llvm/MC/MCSymbolELF.h" #include "llvm/MC/MCValue.h" #include "llvm/ProfileData/InstrProf.h" -#include "llvm/ProfileData/ProfileCommon.h" #include "llvm/Support/COFF.h" #include "llvm/Support/Dwarf.h" #include "llvm/Support/ELF.h" @@ -245,11 +244,6 @@ static StringRef getSectionPrefixForGlobal(SectionKind Kind) { return ".data.rel.ro"; } -static cl::opt<bool> GroupFunctionsByHotness( - "group-functions-by-hotness", - llvm::cl::desc("Partition hot/cold functions by sections prefix"), - cl::init(false)); - static MCSectionELF * selectELFSectionForGlobal(MCContext &Ctx, const GlobalValue *GV, SectionKind Kind, Mangler &Mang, @@ -302,16 +296,6 @@ selectELFSectionForGlobal(MCContext &Ctx, const GlobalValue *GV, Name = getSectionPrefixForGlobal(Kind); } - if (GroupFunctionsByHotness) { - if (const Function *F = dyn_cast<Function>(GV)) { - if (ProfileSummary::isFunctionHot(F)) { - Name += getHotSectionPrefix(); - } else if (ProfileSummary::isFunctionUnlikely(F)) { - Name += getUnlikelySectionPrefix(); - } - } - } - if (EmitUniqueSection && UniqueSectionNames) { Name.push_back('.'); TM.getNameWithPrefix(Name, GV, Mang, true); diff --git a/llvm/lib/ProfileData/ProfileSummary.cpp b/llvm/lib/ProfileData/ProfileSummary.cpp index 0363fbfe42d..0e2c43e5e91 100644 --- a/llvm/lib/ProfileData/ProfileSummary.cpp +++ b/llvm/lib/ProfileData/ProfileSummary.cpp @@ -11,9 +11,6 @@ // //===----------------------------------------------------------------------===// -#include "llvm/IR/Attributes.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/Module.h" #include "llvm/ProfileData/InstrProf.h" #include "llvm/ProfileData/ProfileCommon.h" #include "llvm/ProfileData/SampleProf.h" @@ -78,24 +75,6 @@ void ProfileSummary::computeDetailedSummary() { } } -// Returns true if the function is a hot function. -bool ProfileSummary::isFunctionHot(const Function *F) { - // FIXME: update when summary data is stored in module's metadata. - return false; -} - -// Returns true if the function is a cold function. -bool ProfileSummary::isFunctionUnlikely(const Function *F) { - if (F->hasFnAttribute(Attribute::Cold)) { - return true; - } - if (!F->getEntryCount()) { - return false; - } - // FIXME: update when summary data is stored in module's metadata. - return (*F->getEntryCount()) == 0; -} - InstrProfSummary::InstrProfSummary(const IndexedInstrProf::Summary &S) : ProfileSummary(), MaxInternalBlockCount(S.get( IndexedInstrProf::Summary::MaxInternalBlockCount)), diff --git a/llvm/test/CodeGen/X86/partition-sections.ll b/llvm/test/CodeGen/X86/partition-sections.ll deleted file mode 100644 index b05a381440f..00000000000 --- a/llvm/test/CodeGen/X86/partition-sections.ll +++ /dev/null @@ -1,31 +0,0 @@ -; RUN: llc < %s -group-functions-by-hotness=true | FileCheck %s -check-prefix=PARTITION -; RUN: llc < %s -function-sections -group-functions-by-hotness=false | FileCheck %s -check-prefix=NO-PARTITION-FUNCTION-SECTION -; RUN: llc < %s -function-sections -group-functions-by-hotness=true | FileCheck %s -check-prefix=PARTITION-FUNCTION-SECTION - -; PARTITION: .text.unlikely -; PARTITION: .globl _Z3foov -; NO-PARTITION-FUNCTION-SECTION: .text._Z3foov -; PARTITION-FUNCTION-SECTION: .text.unlikely._Z3foov -define i32 @_Z3foov() #0 { - ret i32 0 -} - -; PARTITION: .globl _Z3barv -; NO-PARTITION-FUNCTION-SECTION: .text._Z3barv -; PARTITION-FUNCTION-SECTION: .text.unlikely._Z3barv -define i32 @_Z3barv() #1 !prof !0 { - ret i32 1 -} - -; PARTITION: .text -; PARTITION: .globl _Z3bazv -; NO-PARTITION-FUNCTION-SECTION: .text._Z3bazv -; PARTITION-FUNCTION-SECTION: .text._Z3bazv -define i32 @_Z3bazv() #1 { - ret i32 2 -} - -attributes #0 = { nounwind uwtable cold } -attributes #1 = { nounwind uwtable } - -!0 = !{!"function_entry_count", i64 0} |