[llvm] [SimplifyCFG] Probabilities associated with same condition are constant (PR #155734)
Mircea Trofin via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 3 20:16:40 PDT 2025
================
@@ -4808,23 +4808,12 @@ static bool SimplifyCondBranchToCondBranch(BranchInst *PBI, BranchInst *BI,
SelectInst *NV = cast<SelectInst>(
Builder.CreateSelect(PBICond, PBIV, BIV, PBIV->getName() + ".mux"));
PN.setIncomingValue(PBBIdx, NV);
- // Although the select has the same condition as PBI, the original branch
- // weights for PBI do not apply to the new select because the select's
- // 'logical' edges are incoming edges of the phi that is eliminated, not
- // the outgoing edges of PBI.
+ // The select has the same condition as PBI. The probabilities don't
----------------
mtrofin wrote:
> the branch probability is control flow dependent
Ah, true. Got it.
> The dillema is that[...]
Here, the select itself is created in the same BB as the condition it governs it (see `Builder`, lines 4747, 4808). But ack on the overall issue. I'm thinking that ultimately, the general case here becomes a question for the next phase - where we look for profile value correctness. Potentially we could track the probabilities of values associated with branches, at least for validation, if not for derivation, too.
https://github.com/llvm/llvm-project/pull/155734
More information about the llvm-commits
mailing list