[PATCH] New pass: inductive range check elimination

Sanjoy Das sanjoy at playingwithpointers.com
Fri Jan 9 23:34:11 PST 2015


Major changes in this version:

1. I broke up `ConstrainLoopRange` into a bunch of functions, grouped together as the `LoopConstrainer` class.
2. this new version now no longer tries to preserve any analyses.  That will be a separate improvement later on.
3. the range check detection logic is more general.

The test coverage is still pretty low, but I plan on improving this once this is in tree.


http://reviews.llvm.org/D6693

Files:
  include/llvm/InitializePasses.h
  include/llvm/LinkAllPasses.h
  include/llvm/Transforms/Scalar.h
  lib/Transforms/Scalar/CMakeLists.txt
  lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  lib/Transforms/Scalar/Scalar.cpp
  test/Transforms/InductiveRangeCheckElimination/multiple-access-no-preloop.ll
  test/Transforms/InductiveRangeCheckElimination/single-access-no-preloop.ll
  test/Transforms/InductiveRangeCheckElimination/single-access-with-preloop.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6693.17971.patch
Type: text/x-patch
Size: 47855 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150110/588b05d2/attachment.bin>


More information about the llvm-commits mailing list