[LLVMdev] another SCEV surprise

Preston Briggs preston.briggs at gmail.com
Tue Jun 19 22:21:41 PDT 2012


When compile the following case and look at the SCEV analysis, I notice
that the first two loops don't have a LoopInvariantBackedgeTakenCount
(surprising) and the last one does (not surprising, except in the context
of the first two examples).

*void p4(int *A, int *B, long int n) {*
*  for (char i = 0; i < n; i++) {*
*    A[i + 2] = i;*
*    *B++ = A[i];*
*  }*
*}*
*
*
*void p5(int *A, int *B, long int n) {*
*  for (short i = 0; i < n; i++) {*
*    A[i + 2] = i;*
*    *B++ = A[i];*
*  }*
*}*
*
*
*void p6(int *A, int *B, long int n) {*
*  for (int i = 0; i < n; i++) {*
*    A[i + 2] = i;*
*    *B++ = A[i];*
*  }*
*}*


Why the difference? Is there a reason we don't implement all the loops
using 64-bit values?

Thanks,
Preston
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120619/bf4fe2b2/attachment.html>


More information about the llvm-dev mailing list