[llvm] [ValueTracking] Use `SimplifyQuery` in `isKnownNonEqual` (PR #124942)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 31 00:59:59 PST 2025


================
@@ -1349,8 +1349,10 @@ AliasResult BasicAAResult::aliasGEP(
     const VariableGEPIndex &Var1 = DecompGEP1.VarIndices[1];
     if (Var0.hasNegatedScaleOf(Var1) && Var0.Val.TruncBits == 0 &&
         Var0.Val.hasSameCastsAs(Var1.Val) && !AAQI.MayBeCrossIteration &&
-        isKnownNonEqual(Var0.Val.V, Var1.Val.V, DL, &AC, /* CxtI */ nullptr,
-                        DT))
+        isKnownNonEqual(Var0.Val.V, Var1.Val.V,
+                        SimplifyQuery(DL, DT, &AC, /*CxtI=*/Var0.CxtI
+                                                       ? Var0.CxtI
+                                                       : Var1.CxtI)))
----------------
nikic wrote:

This was actually using a null context instruction intentionally, to avoid order-dependence. But due to the implicit context, it ended up not mattering, and now things rely on it... It's okay for now, keeping symmetry in this code is not super important.

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


More information about the llvm-commits mailing list