Duncan Sands
2012-Feb-27 19:17 UTC
[LLVMdev] How to unroll loop with non-constant boundary
Hi Benjamin,> LLVM misses this optimization because ScalarEvolution's ComputeExitLimitFromICmp doesn't handle signed<= (SLE) and thus can't compute the number of times the loop is executed. I wonder if there's a reason for this, it seems like something simple to add.instsimplify could also be enhanced to clean it up in this particular case, but it would be better to make scev smarter. Ciao, Duncan.
Benjamin Kramer
2012-Feb-28 13:41 UTC
[LLVMdev] How to unroll loop with non-constant boundary
On 27.02.2012, at 20:17, Duncan Sands wrote:> Hi Benjamin, > >> LLVM misses this optimization because ScalarEvolution's ComputeExitLimitFromICmp doesn't handle signed<= (SLE) and thus can't compute the number of times the loop is executed. I wonder if there's a reason for this, it seems like something simple to add. > > instsimplify could also be enhanced to clean it up in this particular case, but > it would be better to make scev smarter.I filed http://llvm.org/bugs/show_bug.cgi?id=12110 to track this. - Ben> Ciao, Duncan. > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Stepan Dyatkovskiy
2012-Mar-07 07:54 UTC
[LLVMdev] How to unroll loop with non-constant boundary
Hi guys, I attached the modified patch that handles cases with low==end and stride!=1. Please find it for review. -Stepan 28.02.2012, 17:41, "Benjamin Kramer" <benny.kra at googlemail.com>:> On 27.02.2012, at 20:17, Duncan Sands wrote: > >> Hi Benjamin, >>> LLVM misses this optimization because ScalarEvolution's ComputeExitLimitFromICmp doesn't handle signed<= (SLE) and thus can't compute the number of times the loop is executed. I wonder if there's a reason for this, it seems like something simple to add. >> instsimplify could also be enhanced to clean it up in this particular case, but >> it would be better to make scev smarter. > > I filed http://llvm.org/bugs/show_bug.cgi?id=12110 to track this. > > - Ben > >> Ciao, Duncan. >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- A non-text attachment was scrubbed... Name: pr12110.patch Type: application/octet-stream Size: 5358 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120307/61ebd16b/attachment.obj>
Apparently Analagous Threads
- [LLVMdev] How to unroll loop with non-constant boundary
- [LLVMdev] How to unroll loop with non-constant boundary
- [LLVMdev] How to unroll loop with non-constant boundary
- [LLVMdev] How to unroll loop with non-constant boundary
- [LLVMdev] How to unroll loop with non-constant boundary