DeadCodeElim: Compute correct liveout for non-affine accesses

Thanks to Johannes Doerfert for narrowing down the bug.

Reported-by: Chris Jenneisch <chrisj@codeaurora.org>

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@212796 91177308-0d34-0410-b5e6-96231b3b80d8
Remove unnecessary isl annotations

They where just left over from copy-pasting.

Reported-by:  Johannes Doerfert <jdoerfert@codeaurora.org>

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@212800 91177308-0d34-0410-b5e6-96231b3b80d8
DeadCodeElimination: Fix liveout computation

We move back to a simple approach where the liveout is the last must-write
statement for a data-location plus all may-write statements. The previous
approach did not work out. We would have to consider per-data-access
dependences, instead of per-statement dependences to correct it. As this adds
complexity and it seems we would not gain anything over the simpler approach
that we implement in this commit, I moved us back to the old approach of
computing the liveout, but enhanced it to also add may-write accesses.

We also fix the test case and explain why we can not perform dead code
elimination in this case.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@212925 91177308-0d34-0410-b5e6-96231b3b80d8
Annotate reduction parallel loops in the IslAst textual output

  + Introduced dependency type TYPE_TC_RED to represent the transitive closure
    (& the reverse) of reduction dependences. These are used when we check for
    reduction parallel loops.
  + Test cases including loop reversals and modulo schedules which compute
    reductions in a alternated order.


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@213019 91177308-0d34-0410-b5e6-96231b3b80d8
[Format] Clang format IslAst.cpp


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@213026 91177308-0d34-0410-b5e6-96231b3b80d8
Update to isl-0.13.0

This pulls in a couple of minor cleanups in isl. More importantly, in
preparation of the upcoming LLVM releases this change brings us back on a
released version of isl.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@213062 91177308-0d34-0410-b5e6-96231b3b80d8
[Refactor] Use attributes to mark function as invalid for polly

  + Test case annotated with the new attribute
  + Modified test case to check if subfunctions are annotated


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@213093 91177308-0d34-0410-b5e6-96231b3b80d8
[Refactor] Move code out of the IslAst header

  Offer the static functions to extract information out of an IslAst for node
  as members of IslAstInfo not as top level entities.

  + Refactor common code
  + Add isParallel and isReductionParallel
  + Rename IslAstUser to IslAstUserPayload to make it clear this is just a (or
    the) payload struct.


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