llvm-project/polly/test/Isl
Tobias Grosser 5e6813d184 Derive run-time conditions for delinearization
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
2014-07-02 17:47:48 +00:00
..
Ast Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
CodeGen Derive run-time conditions for delinearization 2014-07-02 17:47:48 +00:00
single_loop_param_less_equal.ll Update LoopInfo correctly 2013-05-16 06:40:24 +00:00
single_loop_param_less_than.ll LoopGenerators: Construct loops such that they are already loop rotated 2013-05-16 06:40:06 +00:00
single_loop_uint_max_iterations.ll
single_loop_ull_max_iterations.ll