[PATCH] D39097: [LoopPredication] Handle the case when the guard and the latch IV have different offsets

Artur Pilipenko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 19 09:29:59 PDT 2017


apilipenko created this revision.

This is a follow up change for https://reviews.llvm.org/D37569.

Currently the transformation is limited to the case when:

- The loop has a single latch with the condition of the form: ++i <pred> latchLimit, where <pred> is u<, u<=, s<, or s<=.
- The step of the IV used in the latch condition is 1.
- The IV of the latch condition is the same as the post increment IV of the guard condition.
- The guard condition is of the form i u< guardLimit.

This patch enables the transform in the case when the latch is

  latchStart + i <pred> latchLimit, where <pred> is u<, u<=, s<, or s<=.

And the guard is

  guardStart + i u< guardLimit

This is the last change in this chain.


Repository:
  rL LLVM

https://reviews.llvm.org/D39097

Files:
  lib/Transforms/Scalar/LoopPredication.cpp
  test/Transforms/LoopPredication/basic.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39097.119592.patch
Type: text/x-patch
Size: 16658 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171019/8c2c2a8a/attachment.bin>


More information about the llvm-commits mailing list