[PATCH] D101174: [IRCE] Relieve bound check on isSafeIncreasingBound and isSafeDecreasingBound

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 27 04:14:36 PDT 2021


lebedev.ri added a comment.

> With the order, if there are sibling loops, the target loop's predecessor could be located in previously processed loop which has complex CFG from optimization. From this situation, it is not easy to expect isLoopEntryGuardedByCond returns true.

I'm having a hard time parsing your messages :/
What does "is not easy" mean?
Is there some particular pattern that SCEV doesn't handle?
Perhaps it can be easily taught about it.

In D101174#2719193 <https://reviews.llvm.org/D101174#2719193>, @jaykang10 wrote:

>> I think you didn't answer the question though.
>
> From my opinion, it will not regress old-pm and it will not be affected by the population order of loops in new-pm. This change just relieves the bound check for new loop. If it is not proper answer for your question, please let me know.

Okay. So am i understanding correctly that we simply don't need that other check, and we don't have correctness problems when omitting it?

No further comments from me, thanks.



================
Comment at: llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp:715
     return false;
 
   LLVM_DEBUG(dbgs() << "irce: isSafeIncreasingBound with:\n");
----------------
Does this need a `SE.isKnownPositive(Step)`, like one in `isSafeDecreasingBound()`?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101174/new/

https://reviews.llvm.org/D101174



More information about the llvm-commits mailing list