Update to the latest cloog and isl versions

This brings in isl_val support from cloog and, most importantly the following
isl commit:

commit d962967ab42323ea5ca0398956fbff6a98c782fa
Author: Sven Verdoolaege <skimo@kotnet.org>
Date:   Wed Dec 18 12:05:32 2013 +0100

    allow the user to impose a bound on the number of low-level operations

    This should allow the user to deterministically limit the effort spent on a
    computation.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@199582 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGeneration: Replace reference to isl_int with explicit mpz call.

This removes the last isl_int dependency in the default build. There are
still some in OpenScop and Scoplib. For those isl-0.12.2 still needs to be used.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@199585 91177308-0d34-0410-b5e6-96231b3b80d8
Switch isl back to isl 0.12.1

The newer isl version broke backward compatibility. For some reason, I did not
find this in my own tests.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@199586 91177308-0d34-0410-b5e6-96231b3b80d8
Adjust test case to changed cloog output

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

This includes the following very useful isl commit:

commit d962967ab42323ea5ca0398956fbff6a98c782fa
Author: Sven Verdoolaege <skimo@kotnet.org>
Date:   Wed Dec 18 12:05:32 2013 +0100

allow the user to impose a bound on the number of low-level operations

This should allow the user to deterministically limit the effort spent on a
computation.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200155 91177308-0d34-0410-b5e6-96231b3b80d8
Dependences: Bound the time dependence calculation is allowed to take

Count the number of computational steps that have been used to solve the
dependence problem and abort in case we reach the "compute-out". This ensures we
do not hang forever in cases the dependence problem is too difficult to solve.
There is just a single case in the LLVM test-suite that runs into the
compute-out. Even in this case, we can probably coalesce some of the parameters
(i32 b, i32 b zext i64, ...) to simplify the problem enough to not hit the
compute out. However, for now we set the compute out in place to address the
general issue. The compute out was choosen such that it stops on a recent laptop
after about 8 seconds.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200156 91177308-0d34-0410-b5e6-96231b3b80d8
Do not run -O3 to canonicalize test case

This is not only not necessary, but in case -03 changes this can actually
cause arbitrarily failing test cases such as, e.g., a recent change by Chandler
that caused -O3 to unroll the loop body, which made the loop we wanted to
detect disappear and consequently this test case fail.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200204 91177308-0d34-0410-b5e6-96231b3b80d8
Remove other unneccessary uses of -O3 in the test suite

The polly test suite is now -O3 clean.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200205 91177308-0d34-0410-b5e6-96231b3b80d8
Do not test polybench with 'make check-polly'

Those test cases should be tested in the LLVM test suite. For Polly we should
extract regression tests for the individual passes.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200206 91177308-0d34-0410-b5e6-96231b3b80d8
Allow Polly at all optimization levels

Restricting Polly to -O3 does not make a lot of sense as it is opt-in anyway
and users who specifically request it should get it. If this causes performance
problems we should rather address them by scheduling the right cleanup passes
then just prevent the user from trying.

Also restricting Polly to -O3 made bugpoint not work with the -O3 flag and polly
enabled.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200208 91177308-0d34-0410-b5e6-96231b3b80d8
Remove an unused parameter

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200209 91177308-0d34-0410-b5e6-96231b3b80d8
Detection: Allow to filter the regions that can be detected

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200224 91177308-0d34-0410-b5e6-96231b3b80d8
TODO: Add topic 'teach bugpoint to extract regions'

This does not only seem helpful for Polly, but it should help in general to
further reduce bugs.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200225 91177308-0d34-0410-b5e6-96231b3b80d8
Add more test cases to check loop invariance of the base pointer.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200305 91177308-0d34-0410-b5e6-96231b3b80d8
Check if array base addresses are invariant

Array base addresses need to be invariant in the region considered. The base
address has to be computed outside the region, or, when it is computed inside,
the value must not change with the iterations of the loops. For example, when a
two-dimensional array is represented as a pointer to pointers the base address
A[i] in an access A[i][j] changes with i; therefore, such regions have to be
rejected.

Contributed by:  Armin Größlinger <armin.groesslinger@uni-passau.de>

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200314 91177308-0d34-0410-b5e6-96231b3b80d8
Do not verify the base addresses

Verification of base addresses is difficult as the independent blocks pass may
introduce aliasing that was not there during scop detection. As a midterm
solution -polly-codegen-scev will remove the need for the independent blocks
pass. For now, we do not verify at compile time that the independent blocks pass
does not make the base addresses loop invariant. Disabling this just removes
one of the multiple safety layers we have. We still can check for correctness
in our regression tests.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200315 91177308-0d34-0410-b5e6-96231b3b80d8
Add missing doxygen comment

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200410 91177308-0d34-0410-b5e6-96231b3b80d8
ScopDetect: Transitively remove all children after region expansion

In rare cases, a region R which is itself not valid has an indirect child region
that is valid. When R becomes part of a valid region by expansion of another
region, then all children of R have to be erased from the set of valid regions.
This patch ensures that indirect children are erased in addition to direct
children.

Contributed-by: Armin Groesslinger <armin.groesslinger@uni-passau.de>

Tobias: I added a reduced test case and adjusted the logic of the patch to
        only recurse until the first child is found.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@200411 91177308-0d34-0410-b5e6-96231b3b80d8
IndependentBlocks: Do not assert for PHI nodes outside of scops

There does not seem to be a reason that we can not support PHI nodes outside of
the scop that reference values within the SCoP. Or at least, the attached test
case seems to do the right thing. We remove the assert for now.

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

The MayAliasSet class is currently not used and just confuses people. We can
reintroduce it in case need a more precise tracking of alias sets.

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