Re: [PATCH] D17268: [LAA] Function 'isStridedPtr' returns additional result “Loop *Lp” via function argument and add appropriate checks out of the 'isStridedPtr'.
Adam Nemet via llvm-commits
llvm-commits at lists.llvm.org
Tue May 17 11:49:04 PDT 2016
anemet added a comment.
In http://reviews.llvm.org/D17268#426175, @roman.shirokiy wrote:
> Updated diff according to Adam suggestions. Also added negative unit stride check since it seems to not break anything and allows to vectorize
Can you please not change this for now. I have been thinking about this code and I am not sure I understand the original version either.
Particularly unclear is why we only check non-wrapping when we retry proving vectorization safety with memchecks only. It seems to me that we'd have to do that for any pointer participating in memchecks.
@Hal, do you remember this? I asked Arnold and he didn't remember anymore.
This check feels parallel to the SCEV tests in isDependent because the dep distance is only correct if the pointers don't wrap. However in this case I think we're only interested if due to wrapping we need to consider the "inverse" interval (end->begin) rather than the normal (begin->end).
http://reviews.llvm.org/D17268
More information about the llvm-commits
mailing list