[llvm-dev] Failure to turn a div by power of 2 into a single shift

Haicheng Wu via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 3 14:06:58 PST 2016


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/4477e92d/attachment.html>


More information about the llvm-dev mailing list