[llvm] [LV] Scale block costs using BranchFrequencyInfo (PR #71793)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 18 03:01:08 PST 2024


================
@@ -401,14 +401,23 @@ static bool hasIrregularType(Type *Ty, const DataLayout &DL) {
   return DL.getTypeAllocSizeInBits(Ty) != DL.getTypeSizeInBits(Ty);
 }
 
-/// A helper function that returns the reciprocal of the block probability of
-/// predicated blocks. If we return X, we are assuming the predicated block
-/// will execute once for every X iterations of the loop header.
-///
-/// TODO: We should use actual block probability here, if available. Currently,
-///       we always assume predicated blocks have a 50% chance of executing.
+/// A helper function that returns the reciprocal of the block probability of a 
+/// predicated block. Without further information, we assume a prob. of 50%.
 static unsigned getReciprocalPredBlockProb() { return 2; }
 
+/// A helper function that returns the reciprocal of the block probability of a 
+// predicated block by comparing its BlockFrequency to that of the loop header.
+static unsigned getReciprocalPredBlockProb(BlockFrequencyInfo *BFI,
----------------
fhahn wrote:

Is there a reason some uses still directly use `getReciprocalPredBlockProb`?

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


More information about the llvm-commits mailing list