[llvm-dev] Failure to turn a div by power of 2 into a single shift
Philip Reames via llvm-dev
llvm-dev at lists.llvm.org
Thu Mar 3 14:36:36 PST 2016
SCEV should be able to easily prove that j is positive here. I'm not
sure where the right place to use that information would be in this
case. Sanjoy, can you comment?
Philip
On 03/03/2016 02:06 PM, Haicheng Wu wrote:
>
> Hello,
>
> I have a simple loop like below
>
> int I, j;
>
> for (j = n; j > 1; j = i) {
>
> i = j / 2;
>
> }
>
> The signed division can be safely turned into a single shift since j
> is known to be positive from the loop guard. LLVM currently cannot
> find out j is positive and compiles the above division into 3
> instructions. Any thoughts on where to fix this?
>
> Thank you in advance,
>
> Haicheng
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160303/5e5af97e/attachment.html>
More information about the llvm-dev
mailing list