llvm-project/polly/lib
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
..
Analysis 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
Exchange Fix build 2014-06-19 16:19:32 +00:00
JSON [C++11] Use nullptr 2014-04-16 07:33:47 +00:00
Support [C++11] Use more range based fors 2014-06-28 08:59:45 +00:00
Transform [C++11] Use more range based fors 2014-06-28 08:59:45 +00:00
CMakeLists.txt cmake: Fix reference to Pluto file 2014-06-24 13:31:42 +00:00
Makefile ScopDetectionDiagnostic: Update Makefile 2014-05-24 18:51:14 +00:00
Polly.cpp Move Pass registration into polly library 2014-03-19 17:54:23 +00:00