[llvm] [CVP] Stop CVP constant propagation from destroying `llvm.assume` (PR #183688)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 2 05:52:03 PST 2026
================
@@ -333,10 +333,22 @@ static bool constantFoldCmp(CmpInst *Cmp, LazyValueInfo *LVI) {
if (!Res)
return false;
- ++NumCmps;
- Cmp->replaceAllUsesWith(Res);
- Cmp->eraseFromParent();
- return true;
+ bool Changed = false;
+ Cmp->replaceUsesWithIf(Res, [&Changed](Use &U) {
+ if (isa<AssumeInst>(U.getUser()))
+ return false;
+ Changed = true;
+ return true;
+ });
----------------
nikic wrote:
```suggestion
bool Changed = Cmp->replaceUsesWithIf(Res, [](Use &U) {
return !isa<AssumeInst>(U.getUser()));
});
```
After a rebase on top of https://github.com/llvm/llvm-project/pull/184107.
https://github.com/llvm/llvm-project/pull/183688
More information about the llvm-commits
mailing list