[PATCH] D17921: [CorrelatedValuePropagation] Convert an SDiv to a UDiv if both operands are known to be nonnegative

Sanjoy Das via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 29 20:27:48 PDT 2016


This is a deficiency in SCEV, should be fixed in
http://reviews.llvm.org/rL274199

On Wed, Jun 29, 2016 at 6:11 PM, Justin Lebar <jlebar at google.com> wrote:
> jlebar added a subscriber: jlebar.
> jlebar added a comment.
>
> This patch regresses our ability to unroll
>
>   void dummy(int);
>   void foo() {
>   #pragma unroll
>     for (int i = 32; i > 0; i /= 2) { dummy(i); }
>   }
>
> It's unclear to me whether this is a deficiency in scalar evolution or a bad canonicalization, although the comments above suggest maybe the latter?
>
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D17921
>
>
>



-- 
Sanjoy Das
http://playingwithpointers.com


More information about the llvm-commits mailing list