Introduce the ScopArrayInfo class.

  This class allows to store information about the arrays in the SCoP.
  For each base pointer in the SCoP one object is created storing the
  type and dimension sizes of the array. The objects can be obtained via
  the SCoP, a MemoryAccess or the isl_id associated with the output
  dimension of a MemoryAccess (the description of what is accessed).

  So far we use the information in the IslExprBuilder to create the
  right base type before indexing into the base array. This fixes the
  bug http://llvm.org/bugs/show_bug.cgi?id=21113 (both test cases are
  included). On top of that we can now build runtime alias checks for
  delinearized arrays as the dimension sizes are also part of the
  ScopArrayInfo objects.

Differential Revision: http://reviews.llvm.org/D5613


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219077 91177308-0d34-0410-b5e6-96231b3b80d8
Allow multidimensional accesses in the IslExprBuilder.

  This resolved the issues with delinearized accesses that might alias,
  thus delinearization doesn't deactivate runtime alias checks anymore.

Differential Revision: http://reviews.llvm.org/D5614


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219078 91177308-0d34-0410-b5e6-96231b3b80d8