aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSnehasish Kumar <snehasishk@google.com>2026-02-03 05:12:34 +0000
committerSnehasish Kumar <snehasishk@google.com>2026-02-10 22:50:09 +0000
commitac8966499b8d9ada5e25165b59e8a2bb2159983a (patch)
treefbab2a80b4965b9132a1aa86de9d1e7767323b2c
parent26fc9f25cfd0b41cdc9f1e8456e970fd048f8202 (diff)
downloadllvm-users/snehasish/fix-nested-select-prof.tar.gz
llvm-users/snehasish/fix-nested-select-prof.tar.bz2
llvm-users/snehasish/fix-nested-select-prof.zip
InstCombine: Propagate profile metadata in nested select foldingusers/snehasish/fix-nested-select-prof
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp8
-rw-r--r--llvm/utils/profcheck-xfail.txt2
2 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
index 9610ff3d48b3..1f2b7154ba42 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
@@ -3501,11 +3501,15 @@ static Instruction *foldNestedSelects(SelectInst &OuterSelVal,
Value *SelInner = Builder.CreateSelect(
AltCond, IsAndVariant ? OuterSel.TrueVal : InnerSel.FalseVal,
- IsAndVariant ? InnerSel.TrueVal : OuterSel.FalseVal);
+ IsAndVariant ? InnerSel.TrueVal : OuterSel.FalseVal, "",
+ ProfcheckDisableMetadataFixes ? nullptr : &OuterSelVal);
SelInner->takeName(InnerSelVal);
return SelectInst::Create(InnerSel.Cond,
IsAndVariant ? SelInner : InnerSel.TrueVal,
- !IsAndVariant ? SelInner : InnerSel.FalseVal);
+ !IsAndVariant ? SelInner : InnerSel.FalseVal, "",
+ nullptr,
+ ProfcheckDisableMetadataFixes ? nullptr
+ : &OuterSelVal);
}
/// Return true if V is poison or \p Expected given that ValAssumedPoison is
diff --git a/llvm/utils/profcheck-xfail.txt b/llvm/utils/profcheck-xfail.txt
index df5b7a33591c..7f0c105286df 100644
--- a/llvm/utils/profcheck-xfail.txt
+++ b/llvm/utils/profcheck-xfail.txt
@@ -238,8 +238,8 @@ Transforms/InstCombine/minmax-fp.ll
Transforms/InstCombine/minmax-intrinsics.ll
Transforms/InstCombine/mul-inseltpoison.ll
Transforms/InstCombine/mul.ll
+Transforms/InstCombine/mul-pow2.ll
Transforms/InstCombine/multiple-uses-load-bitcast-select.ll
-Transforms/InstCombine/nested-select.ll
Transforms/InstCombine/or-fcmp.ll
Transforms/InstCombine/pow-1.ll
Transforms/InstCombine/pow-3.ll