[PATCH] D126533: [LAA] Relax pointer dependency with runtime pointer checks

Dinar Temirbulatov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 7 08:54:30 PDT 2022


dtemirbulatov added inline comments.


================
Comment at: llvm/lib/Analysis/LoopAccessAnalysis.cpp:1714-1715
+
+    if (APtr != BPtr && (SrcAffine || SinkAffine) &&
+        (SrcInvariant || SinkInvariant))
+      FoundNonConstantDistanceDependence = true;
----------------
sdesmalen wrote:
> This expression doesn't allow the case where `SrcAffine && SinkAffine && !SrcInvariant && !SinkInvariant`.
> 
> AIUI the distance can only be computed if:
> 
>   (SrcAffine && SinkAffine) ||
>   (SrcAffine && SinkInvariant) ||
>   (SrcInvariant && SinkAffine) ||
>   (SrcInvariant && SinkInvariant)
> 
> By the way, I couldn't see any new test-cases. Did you forget to add these, or did I miss something?
Hmm , For the case if both are invariants we don't need to emit a run-time check and I think we can ignore such cases. For both are affine type pointers I have not considered to support with the change and if I allow it I noticed performance regressions.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126533/new/

https://reviews.llvm.org/D126533



More information about the llvm-commits mailing list