[PATCH] D24189: [LAA] Extend isConsecutiveAccess to determine if two accesses are consecutive, reverse consecutive, or non-consecutive.
Michael Kuperstein via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 2 10:13:11 PDT 2016
mkuper added a comment.
I'm not sure this is a clear compile-time win. We'll get less calls to isConsecutiveAcess, but most of the clients - except for the Load case in buildTree_rec() - care only about one direction. We'll see what regression testing shows, I guess. My guess is "noise". :-)
Comment at: include/llvm/Analysis/LoopAccessAnalysis.h:718
@@ -717,5 +717,3 @@
-/// \brief Returns true if the memory operations \p A and \p B are consecutive.
-/// This is a simple API that does not depend on the analysis pass.
-bool isConsecutiveAccess(Value *A, Value *B, const DataLayout &DL,
- ScalarEvolution &SE, bool CheckType = true);
+/// \brief Returns 1 if the memory operations \p A and \p B are consecutive and
+/// B follows A. Returns -1 if the memory operations \p A and \p B are
Any compelling reason not to make this an enum?
Comment at: lib/Analysis/LoopAccessAnalysis.cpp:1083
@@ +1082,3 @@
+ OffsetDeltaSCEV = SE.getMinusSCEV(OffsetSCEVB, OffsetSCEVA);
+ BaseDelta = SE.getMinusSCEV(SizeSCEV, OffsetDeltaSCEV);
+ X = SE.getAddExpr(PtrSCEVB, BaseDelta);
Aren't these the same values BaseDelta and OffsetDeltaSCEV already have?
More information about the llvm-commits