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

Hal Finkel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 3 19:58:40 PDT 2017


hfinkel added a comment.

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

> no, If there has no latch will not execute evoluateForICmp in LoopDeletion(if I think correct)
>  getBackedgeTakenInfo will return SCEVUnkown correctly if there is no latch.


Whether or not there's a latch is a static property of the

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

>   int values[11];
>   int i = 0;
>   do {
>  
>   values[i] = i != 10;
>   } while (i++ != 10);
>
>
> will be removed. from LoopDeletion.
>
>   int values[11];
>   int i = 0;
>   do {
>  
>   values[i] = i != 10;
>   } while (i++ != 10);
>  
>  
>   print(values[10]);
>
>
> will not be even optimized.
>  (this is what I thought)


Whether or not any current transformation performs the simplification is not relevant. It would be trivial to write a transformation that replace instructions whose SCEVs are constants with those constants. SCEV needs to be semantically sound on its own.


https://reviews.llvm.org/D38494





More information about the llvm-commits mailing list