[llvm] ValueTracking: generalize isNonEqualPHIs (PR #108820)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 16 06:07:12 PDT 2024


artagnon wrote:

What about the following then?

```diff
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index c46152f60aab..9e173d89e129 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -3538,7 +3538,8 @@ static bool isNonEqualPHIs(const PHINode *PN1, const PHINode *PN2,
     const Value *IV2 = PN2->getIncomingValueForBlock(IncomBB);
     SimplifyQuery RecQ = Q.getWithoutCondContext();
     RecQ.CxtI = IncomBB->getTerminator();
-    if (!isKnownNonEqual(IV1, IV2, DemandedElts, Depth + 1, RecQ))
+    if (!isKnownNonEqual(IV1, IV2, DemandedElts, MaxAnalysisRecursionDepth - 1,
+                         RecQ))
       return false;
   }
   return true;
```

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


More information about the llvm-commits mailing list