[PATCH] D38494: [ScalarEvolution] Handling for ICmp occuring in the evolution chain.

Sanjoy Das via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 3 19:28:14 PDT 2017


sanjoy added a comment.

In https://reviews.llvm.org/D38494#887842, @junryoungju wrote:

> can you explain me why? (I may I didn't understood why do we need to process without loop latch)
>  I thought without latch cannot be evoluted from ICmp evolution.
>
> without latch loop have to me evoluted from previous SCEV operation. isn't it?


We may be talking past each other, but I was thinking of a situation like this or equivalent:

  bool cond;
  do {
    cond = icmp eq 0, 1;
    print(cond);
  } while (cond);

If I understand correctly, this patch will infer that getSCEV(cond) is the SCEVConstant for `true`, but it is actually false.


https://reviews.llvm.org/D38494





More information about the llvm-commits mailing list