[PATCH] D49602: Use SCEV to avoid inserting some bounds checks.
    Evgenii Stepanov via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Jul 20 10:55:09 PDT 2018
    
    
  
eugenis added a comment.
In https://reviews.llvm.org/D49602#1170033, @jgalenson wrote:
> In https://reviews.llvm.org/D49602#1169952, @eugenis wrote:
>
> > Do the tests cover cases where only one or two of the checks can be omitted, but not all of them? Does not look that way.
>
>
> I'm not quite sure what you mean.  The test cases are essentially:
>
> int foo[1000];
>  for (int i = 0; i < {1000,2000,n}; i++)
>
>   foo[i];
>   
>
> and
>
> foo[2][2];
>  for (int i = 0; i < {2,3,n}; i++)
>
>   for (int j = 0; j < {2,3,n}; j++)
>     foo[i][j[]
>   
>
> So they do cover the same where you iterate over the whole array and beyond it.  I also just added a testcase that counts down to 0 or below 0.
Consider a loop where offset is always inbounds, but offset + access size may be not. Bounds checks is still needed, but it should be cheaper, because Size <= Offset will be constant false.
https://reviews.llvm.org/D49602
    
    
More information about the llvm-commits
mailing list