forked from OSchip/llvm-project
5e6813d184
As our delinearization works optimistically, we need in some cases run-time checks that verify our optimistic assumptions. A simple example is the following code: void foo(long n, long m, long o, double A[n][m][o]) { for (long i = 0; i < 100; i++) for (long j = 0; j < 150; j++) for (long k = 0; k < 200; k++) A[i][j][k] = 1.0; } After clang linearized the access to A and we delinearized it again to A[i][j][k] we need to ensure that we do not access the delinearized array out of bounds (this information is not available in LLVM-IR). Hence, we need to verify the following constraints at run-time: CHECK: Assumed Context: CHECK: [o, m] -> { : m >= 150 and o >= 200 } llvm-svn: 212198 |
||
---|---|---|
.. | ||
Ast | ||
CodeGen | ||
single_loop_param_less_equal.ll | ||
single_loop_param_less_than.ll | ||
single_loop_uint_max_iterations.ll | ||
single_loop_ull_max_iterations.ll |