[llvm] [InstCombine][profcheck] Propogate profile metadata when transforming br (X && !Y) to br (!X || Y) (PR #175939)
Snehasish Kumar via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 26 11:48:59 PST 2026
================
@@ -4233,6 +4234,17 @@ Instruction *InstCombinerImpl::visitBranchInst(BranchInst &BI) {
m_OneUse(m_LogicalAnd(m_Value(X), m_OneUse(m_Not(m_Value(Y))))))) {
Value *NotX = Builder.CreateNot(X, "not." + X->getName());
Value *Or = Builder.CreateLogicalOr(NotX, Y);
+ if (!ProfcheckDisableMetadataFixes) {
+ if (auto *OrInst = dyn_cast<Instruction>(Or)) {
+ if (auto *CondInst = dyn_cast<Instruction>(Cond)) {
+ SmallVector<uint32_t> Weights;
+ if (extractBranchWeights(*CondInst, Weights) && Weights.size() == 2) {
----------------
snehasish wrote:
Done.
https://github.com/llvm/llvm-project/pull/175939
More information about the llvm-commits
mailing list