[Fix] Dead statements should not confuse the RTC generation

  This fixes http://llvm.org/bugs/show_bug.cgi?id=21166 .

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


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219131 91177308-0d34-0410-b5e6-96231b3b80d8
[Refactor] Change the comment style to silence -Wcomment

  -Wcomment complained about a "multi-line comment" caused by the
  ascii art used in ScopHelper to describe the CFG.

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


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219207 91177308-0d34-0410-b5e6-96231b3b80d8
[Fix] Non i1 typed select condition for weird pw aff functions.

  In case the pieceweise affine function used to create an isl_ast_expr
  had empty cases (e.g., with contradicting constraints on the
  parameters), it was possible that the condition of the isl_ast_expr
  select was not a comparison but a constant (thus of type i64).

  This patch does two thing:
   1) Handle the case the condition of a select is not a i1 type like C.
   2) Try to simplify the pieceweise affine functions for the min/max
      access when we generate runtime alias checks. That step can often
      remove empty or redundant cases as well as redundant constrains.

  This fixes bug: http://llvm.org/PR21167

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


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219208 91177308-0d34-0410-b5e6-96231b3b80d8
[Fix] Ignore forwarding alias sets in the alias set tracker.


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219275 91177308-0d34-0410-b5e6-96231b3b80d8
[Refactor] Rename MemoryAccess::Type as it clashes with llvm::Type


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219294 91177308-0d34-0410-b5e6-96231b3b80d8
Allow the VectorBlockGenerator to use the IslExprBuilder.

  This also enables the VectorBlockGenerator to build load store
  accesses according to the newAccessRelation of a MemoryAccess.


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219321 91177308-0d34-0410-b5e6-96231b3b80d8
[Refactor][NFC] Simplify (Vector)BlockGenerator

  This removes an unnecessary cast and a unnecessary local variable.

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


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219338 91177308-0d34-0410-b5e6-96231b3b80d8
Use the new access function (if present) to compute the access stride.

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


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219499 91177308-0d34-0410-b5e6-96231b3b80d8
Relax the condition on the jsop accesses regarding the alignment.

  We restricted the new access functions to be a subset of the old one
  because we want to keep the alignment, however if the alignment is
  "not special", thus the default for the type, we can allow any access.


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


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219503 91177308-0d34-0410-b5e6-96231b3b80d8
[Refactor][NfC] Simplify and clean the handling of (new) access relations

  This patch does not change the semantic on it's own. However, the
  dependence analysis as well as dce will now use the newest available
  access relation for each memory access, thus if at some point the json
  importer or any other pass will run before those two and set a new
  access relation the behaviour will be different. In general it is
  unclear if the dependence analysis and dce should be run on the old or
  new access functions anyway. If we need to access the original access
  function from the outside later, we can expose the getter again.

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


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@219612 91177308-0d34-0410-b5e6-96231b3b80d8
[Refactor][NfC] ReportLevel should be used as a bool not an int


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