[PATCH] D15412: [SCEV][LAA] Add no overflow SCEV predicates and use use them to improve strided pointer detection
silviu.baranga@arm.com via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 14 09:28:31 PST 2015
sbaranga updated this revision to Diff 42730.
sbaranga added a comment.
Renamed SCEVAddRecOverflowPredicate to SCEVWrapPredicate.
SCEVWrapPredicate now has its own flags for NUW/NSW, with
a slightly different meaning of the NUW flag from SCEV.
These flags allow us to do the transformation:
zext({a,+,b}) -> {zext(a),+,sext(b)}
sext({a,+,b}) -> {sext(a),+,sext(b)}
Updated the predicate checking code to use the Sanjoy's
method of checking:
- we extend to a large enough type to remove all possible overflows
- we check that the the final value (without any overflow) is what we would get if we would compute the expression and then do the extend.
This should also address the remaining review comments.
http://reviews.llvm.org/D15412
Files:
include/llvm/Analysis/LoopAccessAnalysis.h
include/llvm/Analysis/ScalarEvolution.h
include/llvm/Analysis/ScalarEvolutionExpander.h
lib/Analysis/LoopAccessAnalysis.cpp
lib/Analysis/ScalarEvolution.cpp
lib/Analysis/ScalarEvolutionExpander.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/same-base-access.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15412.42730.patch
Type: text/x-patch
Size: 25707 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151214/6ed351db/attachment.bin>
More information about the llvm-commits
mailing list