summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2014-01-26 19:36:28 +0000
committerTobias Grosser <tobias@grosser.es>2014-01-26 19:36:28 +0000
commita38c92406c1d60bd1af36393886c65ff253e0514 (patch)
treeb6f99ee32e60ae51a8b4618790e46371e8aca668
parent771f7652a90172d187b1c65f1a8cad5f8aab759c (diff)
downloadbcm5719-llvm-a38c92406c1d60bd1af36393886c65ff253e0514.tar.gz
bcm5719-llvm-a38c92406c1d60bd1af36393886c65ff253e0514.zip
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. llvm-svn: 200155
-rw-r--r--polly/lib/CodeGen/IslCodeGeneration.cpp2
-rw-r--r--polly/lib/ScheduleOptimizer.cpp13
-rwxr-xr-xpolly/utils/checkout_cloog.sh2
3 files changed, 14 insertions, 3 deletions
diff --git a/polly/lib/CodeGen/IslCodeGeneration.cpp b/polly/lib/CodeGen/IslCodeGeneration.cpp
index e89384e207f..ed17050e002 100644
--- a/polly/lib/CodeGen/IslCodeGeneration.cpp
+++ b/polly/lib/CodeGen/IslCodeGeneration.cpp
@@ -445,6 +445,8 @@ Value *IslExprBuilder::createOp(__isl_take isl_ast_expr *Expr) {
case isl_ast_op_and_then:
case isl_ast_op_or_else:
case isl_ast_op_call:
+ case isl_ast_op_member:
+ case isl_ast_op_access:
llvm_unreachable("Unsupported isl ast expression");
case isl_ast_op_max:
case isl_ast_op_min:
diff --git a/polly/lib/ScheduleOptimizer.cpp b/polly/lib/ScheduleOptimizer.cpp
index 415bc6e5588..14fea7c58ba 100644
--- a/polly/lib/ScheduleOptimizer.cpp
+++ b/polly/lib/ScheduleOptimizer.cpp
@@ -396,7 +396,7 @@ IslScheduleOptimizer::getScheduleForBandList(isl_band_list *BandList) {
isl_band_list_free(Children);
} else if (PollyVectorizerChoice != VECTORIZER_NONE) {
for (int j = 0; j < isl_band_n_member(Band); j++) {
- if (isl_band_member_is_zero_distance(Band, j)) {
+ if (isl_band_member_is_coincident(Band, j)) {
isl_map *TileMap;
isl_union_map *TileUMap;
@@ -514,8 +514,17 @@ bool IslScheduleOptimizer::runOnScop(Scop &S) {
isl_options_set_schedule_max_coefficient(S.getIslCtx(), MaxCoefficient);
isl_options_set_on_error(S.getIslCtx(), ISL_ON_ERROR_CONTINUE);
+
+ isl_schedule_constraints *ScheduleConstraints;
+ ScheduleConstraints = isl_schedule_constraints_on_domain(Domain);
+ ScheduleConstraints =
+ isl_schedule_constraints_set_proximity(ScheduleConstraints, Proximity);
+ ScheduleConstraints = isl_schedule_constraints_set_validity(
+ ScheduleConstraints, isl_union_map_copy(Validity));
+ ScheduleConstraints =
+ isl_schedule_constraints_set_coincidence(ScheduleConstraints, Validity);
isl_schedule *Schedule;
- Schedule = isl_union_set_compute_schedule(Domain, Validity, Proximity);
+ Schedule = isl_schedule_constraints_compute_schedule(ScheduleConstraints);
isl_options_set_on_error(S.getIslCtx(), ISL_ON_ERROR_ABORT);
// In cases the scheduler is not able to optimize the code, we just do not
diff --git a/polly/utils/checkout_cloog.sh b/polly/utils/checkout_cloog.sh
index e8e68d476c1..3ffd4b541e4 100755
--- a/polly/utils/checkout_cloog.sh
+++ b/polly/utils/checkout_cloog.sh
@@ -1,7 +1,7 @@
#!/bin/sh
CLOOG_HASH="2d8b7c6b43ee46fee978a57fa6877de49675f357"
-ISL_HASH="34eb3a0c3d52875ec93e926f12713feff4d08af0"
+ISL_HASH="1b3ba3b72c0482fd36bf0b4a1186a259f7bafeed"
PWD=`pwd`
OpenPOWER on IntegriCloud