[llvm-branch-commits] [PSI] Return raw entry count values (PR #204769)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jun 19 15:52:39 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-analysis

Author: Aiden Grossman (boomanaiden154)

<details>
<summary>Changes</summary>

Now that synthetic entry counts are being removed, stop using the
ProfileCount wrapper around entrycounts given it only exists to
distinguish between synthetic and real profile counts.


---
Full diff: https://github.com/llvm/llvm-project/pull/204769.diff


2 Files Affected:

- (modified) llvm/include/llvm/Analysis/ProfileSummaryInfo.h (+11-12) 
- (modified) llvm/lib/CodeGen/MachineFunction.cpp (+4-2) 


``````````diff
diff --git a/llvm/include/llvm/Analysis/ProfileSummaryInfo.h b/llvm/include/llvm/Analysis/ProfileSummaryInfo.h
index 7038b4efebf2e..547bc344d314b 100644
--- a/llvm/include/llvm/Analysis/ProfileSummaryInfo.h
+++ b/llvm/include/llvm/Analysis/ProfileSummaryInfo.h
@@ -115,11 +115,11 @@ class ProfileSummaryInfo {
   template <typename FuncT> bool isFunctionEntryHot(const FuncT *F) const {
     if (!F || !hasProfileSummary())
       return false;
-    std::optional<Function::ProfileCount> FunctionCount = getEntryCount(F);
+    std::optional<uint64_t> FunctionCount = getEntryCount(F);
     // FIXME: The heuristic used below for determining hotness is based on
     // preliminary SPEC tuning for inliner. This will eventually be a
     // convenience method that calls isHotCount.
-    return FunctionCount && isHotCount(FunctionCount->getCount());
+    return FunctionCount && isHotCount(*FunctionCount);
   }
 
   /// Returns true if \p F contains hot code.
@@ -128,7 +128,7 @@ class ProfileSummaryInfo {
     if (!F || !hasProfileSummary())
       return false;
     if (auto FunctionCount = getEntryCount(F))
-      if (isHotCount(FunctionCount->getCount()))
+      if (isHotCount(*FunctionCount))
         return true;
 
     if (auto TotalCallCount = getTotalCallCount(F))
@@ -148,7 +148,7 @@ class ProfileSummaryInfo {
     if (!F || !hasProfileSummary())
       return false;
     if (auto FunctionCount = getEntryCount(F))
-      if (!isColdCount(FunctionCount->getCount()))
+      if (!isColdCount(*FunctionCount))
         return false;
 
     if (auto TotalCallCount = getTotalCallCount(F))
@@ -278,11 +278,9 @@ class ProfileSummaryInfo {
     if (!F || !hasProfileSummary())
       return false;
     if (auto FunctionCount = getEntryCount(F)) {
-      if (isHot &&
-          isHotCountNthPercentile(PercentileCutoff, FunctionCount->getCount()))
+      if (isHot && isHotCountNthPercentile(PercentileCutoff, *FunctionCount))
         return true;
-      if (!isHot && !isColdCountNthPercentile(PercentileCutoff,
-                                              FunctionCount->getCount()))
+      if (!isHot && !isColdCountNthPercentile(PercentileCutoff, *FunctionCount))
         return false;
     }
     if (auto TotalCallCount = getTotalCallCount(F)) {
@@ -326,8 +324,10 @@ class ProfileSummaryInfo {
   }
 
   template <typename FuncT>
-  std::optional<Function::ProfileCount> getEntryCount(const FuncT *F) const {
-    return F->getEntryCount();
+  std::optional<uint64_t> getEntryCount(const FuncT *F) const {
+    if (!F->getEntryCount().has_value())
+      return std::nullopt;
+    return F->getEntryCount()->getCount();
   }
 };
 
@@ -349,8 +349,7 @@ ProfileSummaryInfo::getTotalCallCount<Function>(const Function *F) const {
 // here, because we cannot include MachineFunction header here, that would break
 // dependency rules.
 template <>
-std::optional<Function::ProfileCount>
-ProfileSummaryInfo::getEntryCount<MachineFunction>(
+std::optional<uint64_t> ProfileSummaryInfo::getEntryCount<MachineFunction>(
     const MachineFunction *F) const;
 
 /// An analysis pass based on legacy pass manager to deliver ProfileSummaryInfo.
diff --git a/llvm/lib/CodeGen/MachineFunction.cpp b/llvm/lib/CodeGen/MachineFunction.cpp
index 2922922535333..8246b77ac9dce 100644
--- a/llvm/lib/CodeGen/MachineFunction.cpp
+++ b/llvm/lib/CodeGen/MachineFunction.cpp
@@ -1666,10 +1666,12 @@ void MachineConstantPool::print(raw_ostream &OS) const {
 // ProfileSummaryInfo::getEntryCount().
 //===----------------------------------------------------------------------===//
 template <>
-std::optional<Function::ProfileCount>
+std::optional<uint64_t>
 ProfileSummaryInfo::getEntryCount<llvm::MachineFunction>(
     const llvm::MachineFunction *F) const {
-  return F->getFunction().getEntryCount();
+  if (!F->getFunction().getEntryCount().has_value())
+    return std::nullopt;
+  return F->getFunction().getEntryCount()->getCount();
 }
 
 #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)

``````````

</details>


https://github.com/llvm/llvm-project/pull/204769


More information about the llvm-branch-commits mailing list