[llvm] 2069346 - [ModuleSummary] Only compute BFI if function has profile data (#218374)

via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 24 06:24:43 PDT 2026


Author: Nikita Popov
Date: 2026-08-24T15:24:38+02:00
New Revision: 20693469df1207f92076a9f2b49cb0fb28a7f20e

URL: https://github.com/llvm/llvm-project/commit/20693469df1207f92076a9f2b49cb0fb28a7f20e
DIFF: https://github.com/llvm/llvm-project/commit/20693469df1207f92076a9f2b49cb0fb28a7f20e.diff

LOG: [ModuleSummary] Only compute BFI if function has profile data (#218374)

After b30971c4bb3f0654fa4fbb242126376169ae66d0 the module summary should
no longer need BFI for functions without profiling data.

Not computing it is a minor compile-time improvement.

Added: 
    

Modified: 
    llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
index e77bf03ac7f04..bb5fd4eefb7f9 100644
--- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
+++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
@@ -1081,14 +1081,16 @@ ModuleSummaryIndex llvm::buildModuleSummaryIndex(
     DominatorTree DT(const_cast<Function &>(F));
     BlockFrequencyInfo *BFI = nullptr;
     std::unique_ptr<BlockFrequencyInfo> BFIPtr;
-    if (GetBFICallback)
-      BFI = GetBFICallback(F);
-    else if (F.hasProfileData()) {
-      CycleInfo CI;
-      CI.compute(const_cast<Function &>(F));
-      BranchProbabilityInfo BPI{F, CI};
-      BFIPtr = std::make_unique<BlockFrequencyInfo>(F, BPI, CI);
-      BFI = BFIPtr.get();
+    if (F.hasProfileData()) {
+      if (GetBFICallback) {
+        BFI = GetBFICallback(F);
+      } else {
+        CycleInfo CI;
+        CI.compute(const_cast<Function &>(F));
+        BranchProbabilityInfo BPI{F, CI};
+        BFIPtr = std::make_unique<BlockFrequencyInfo>(F, BPI, CI);
+        BFI = BFIPtr.get();
+      }
     }
 
     computeFunctionSummary(Index, M, F, BFI, PSI, DT,


        


More information about the llvm-commits mailing list