[llvm] r261604 - Revert "Add prefix based function layout when profile is available."

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 22 18:28:41 PST 2016


Author: dexonsmith
Date: Mon Feb 22 20:28:40 2016
New Revision: 261604

URL: http://llvm.org/viewvc/llvm-project?rev=261604&view=rev
Log:
Revert "Add prefix based function layout when profile is available."

This reverts commit r261582, since this bot has been broken for four
hours:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/19399/

Removed:
    llvm/trunk/test/CodeGen/X86/partition-sections.ll
Modified:
    llvm/trunk/include/llvm/ProfileData/ProfileCommon.h
    llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    llvm/trunk/lib/ProfileData/ProfileSummary.cpp

Modified: llvm/trunk/include/llvm/ProfileData/ProfileCommon.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ProfileData/ProfileCommon.h?rev=261604&r1=261603&r2=261604&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ProfileData/ProfileCommon.h (original)
+++ llvm/trunk/include/llvm/ProfileData/ProfileCommon.h Mon Feb 22 20:28:40 2016
@@ -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.

Modified: llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp?rev=261604&r1=261603&r2=261604&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (original)
+++ llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp Mon Feb 22 20:28:40 2016
@@ -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 getSectionPrefixForGlob
   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
     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);

Modified: llvm/trunk/lib/ProfileData/ProfileSummary.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ProfileData/ProfileSummary.cpp?rev=261604&r1=261603&r2=261604&view=diff
==============================================================================
--- llvm/trunk/lib/ProfileData/ProfileSummary.cpp (original)
+++ llvm/trunk/lib/ProfileData/ProfileSummary.cpp Mon Feb 22 20:28:40 2016
@@ -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::computeDetailedSumm
   }
 }
 
-// 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)),

Removed: llvm/trunk/test/CodeGen/X86/partition-sections.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/partition-sections.ll?rev=261603&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/X86/partition-sections.ll (original)
+++ llvm/trunk/test/CodeGen/X86/partition-sections.ll (removed)
@@ -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}




More information about the llvm-commits mailing list