Changes to address Sanjoy's comments.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Mar 31 2022
Mar 2 2018
Sep 12 2016
Sep 2 2016
@Eli
Thanks for the info!
Fixed max backedge count computation for loops with unknown stride by assuming a min stride of 1.
Hi all,
Aug 25 2016
Thanks for the additional info!
Aug 18 2016
I can't find anything wrong with the IR. I am awaiting your response for more information.
Aug 16 2016
Please ignore my previous email. My analysis was incorrect. The stride cannot be negative here as it will lead to UB.
Hi Sanjoy,
Aug 9 2016
Added more elaborate comments explaining why the change is correct.
Aug 8 2016
Aug 2 2016
Added bailout condition for predicated IVs.
Jul 26 2016
- Added check to prove that the stride is truly unknown to ScalarEvolution so that the wrap flags are not propagated in edge cases.
- Removed unnecessary check for loopHasNoAbnormalExits() and loop entry guard.
- Fixed comments and the test.
Hi Sanjoy,
Jul 22 2016
Hi Sanjoy,
Hi Sanjoy,
Added check for side effects in the loop.
Jul 20 2016
Bumping this up again.
Jul 15 2016
Hi Sanjoy,
Jul 14 2016
Added check for loopHasNoAbnormalExits() and a comment about bailing out for do-while loops.
In D22377#484607, @eli.friedman wrote:You have to be a bit more careful here... consider:
for (int i=0; i<16; i-=2) { if (i < -2000) break; }Here, the backedge is taken 1000 times. (There are actually two related cases here: one, the case where there's an explicit break, and the case where some call in the loop throws an exception.)
It might be sufficient to show that the loop only has one exit and loopHasNoAbnormalExits() is true; not 100% sure about that.