IRCE: generalize to handle loops with decreasing induction variables.
authorSanjoy Das <sanjoy@playingwithpointers.com>
Thu, 26 Feb 2015 08:19:31 +0000 (08:19 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Thu, 26 Feb 2015 08:19:31 +0000 (08:19 +0000)
commite75ed92630ea924b7fb301014bfa9324155b174e
tree05d7902c0362db4b6b394747f628b7bfa7e15da2
parentd283cb62039011b785c2613ad50912c9bf7528b3
IRCE: generalize to handle loops with decreasing induction variables.

IRCE can now split the iteration space for loops like:

   for (i = n; i >= 0; i--)
     a[i + k] = 42; // bounds check on access

llvm-svn: 230618
llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
llvm/test/Transforms/IRCE/decrementing-loop.ll [new file with mode: 0644]
llvm/test/Transforms/IRCE/multiple-access-no-preloop.ll
llvm/test/Transforms/IRCE/single-access-no-preloop.ll
llvm/test/Transforms/IRCE/single-access-with-preloop.ll