[llvm] [SimplifyCFG] Set branch weights when merging conditional store to address (PR #154841)

Joel E. Denny via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 10 09:05:37 PDT 2025


================
@@ -190,5 +191,31 @@ LLVM_ABI bool hasExplicitlyUnknownBranchWeights(const Instruction &I);
 /// Scaling the profile data attached to 'I' using the ratio of S/T.
 LLVM_ABI void scaleProfData(Instruction &I, uint64_t S, uint64_t T);
 
+/// get the branch weights of a branch conditioned on b1 | b2, where b1 and b2
+/// are 2 booleans that are the condition of 2 branches for which we have the
+/// branch weights B1 and B2, respectivelly.
+inline SmallVector<uint64_t, 2>
+getDisjunctionWeights(const SmallVector<uint32_t, 2> &B1,
+                      const SmallVector<uint32_t, 2> &B2) {
+  // for the first conditional branch, the probability the "true" case is taken
+  // is p(b1) = B1[0] / (B1[0] + B2[0]). The "false" case's probability is
----------------
jdenny-ornl wrote:

```suggestion
  // is p(b1) = B1[0] / (B1[0] + B1[1]). The "false" case's probability is
```

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


More information about the llvm-commits mailing list