[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
Thu Dec 10 03:56:26 PST 2015


sbaranga created this revision.
sbaranga added reviewers: anemet, mzolotukhin, sanjoy.
sbaranga added subscribers: hfinkel, jmolloy, rengolin, llvm-commits.
Herald added a subscriber: sanjoy.

This change adds no overflow SCEV predicates with:
  - support for runtime checking
  - support for expression rewriting (sext ({x,+,u}) -> {x,+,y})

We also change isStridedPtr in LAA to be able to make use of
these predicates. With this feature we should now always be able to
work around overflow issues in the dependence analysis.

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.42410.patch
Type: text/x-patch
Size: 27234 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151210/fd89050d/attachment-0001.bin>


More information about the llvm-commits mailing list