[PATCH] D25682: [LoopUnroll] Keep the loop test only on the first iteration of max-or-zero loops
John Brawn via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 20 03:26:43 PDT 2016
john.brawn added inline comments.
================
Comment at: lib/Analysis/ScalarEvolution.cpp:5741
MustExitMaxBECount = EL.MaxNotTaken;
- else {
+ MustExitMaxOrZero = EL.MaxOrZero;
+ } else {
----------------
sbaranga wrote:
> Does this work with more than one loop exit and with predicated loop exits?
>
> I'm not certain this would hold if we have at least one loop exit that doesn't dominate the latch, given the very strict definition (the backedge gets taken exactly 0 or MaxNotTaken times).
That's handled down on line 5759 - MaxOrZero is set to false on loops with more than one exit.
Repository:
rL LLVM
https://reviews.llvm.org/D25682
More information about the llvm-commits
mailing list