summaryrefslogtreecommitdiffstats
path: root/polly/lib/External/isl/isl_options.c
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2015-06-18 16:45:40 +0000
committerMichael Kruse <llvm@meinersbur.de>2015-06-18 16:45:40 +0000
commitc59f22c5567ad237b0478d26a95c4b48f8715f2f (patch)
tree192026e7325a911cdb4e41552590abb22f3da3eb /polly/lib/External/isl/isl_options.c
parent5578e44df8e63152e891189ce35005dcf5fcf396 (diff)
downloadbcm5719-llvm-c59f22c5567ad237b0478d26a95c4b48f8715f2f.tar.gz
bcm5719-llvm-c59f22c5567ad237b0478d26a95c4b48f8715f2f.zip
Update ISL to isl-0.15-3-g532568a
This version adds small integer optimization, but is not active by default. It will be enabled in a later commit. The schedule-fuse=min/max option has been replaced by the serialize-sccs option. Adapting Polly was necessary, but retaining the name polly-opt-fusion=min/max. Differential Revision: http://reviews.llvm.org/D10505 Reviewers: grosser llvm-svn: 240027
Diffstat (limited to 'polly/lib/External/isl/isl_options.c')
-rw-r--r--polly/lib/External/isl/isl_options.c34
1 files changed, 28 insertions, 6 deletions
diff --git a/polly/lib/External/isl/isl_options.c b/polly/lib/External/isl/isl_options.c
index f41b6e0ec45..cdb578ae5ff 100644
--- a/polly/lib/External/isl/isl_options.c
+++ b/polly/lib/External/isl/isl_options.c
@@ -72,12 +72,30 @@ static struct isl_arg_choice convex[] = {
{0}
};
+#define ISL_SCHEDULE_FUSE_MAX 0
+#define ISL_SCHEDULE_FUSE_MIN 1
+
static struct isl_arg_choice fuse[] = {
{"max", ISL_SCHEDULE_FUSE_MAX},
{"min", ISL_SCHEDULE_FUSE_MIN},
{0}
};
+/* Callback for setting the "schedule-fuse" option.
+ * This (now hidden) option tries to mimic an option that was
+ * replaced by the schedule-serialize-sccs option.
+ * Setting the old option to ISL_SCHEDULE_FUSE_MIN is now
+ * expressed by turning on the schedule-serialize-sccs option.
+ */
+static int set_fuse(void *opt, unsigned val)
+{
+ struct isl_options *options = opt;
+
+ options->schedule_serialize_sccs = (val == ISL_SCHEDULE_FUSE_MIN);
+
+ return 0;
+}
+
static struct isl_arg_choice separation_bounds[] = {
{"explicit", ISL_AST_BUILD_SEPARATION_BOUNDS_EXPLICIT},
{"implicit", ISL_AST_BUILD_SEPARATION_BOUNDS_IMPLICIT},
@@ -142,8 +160,12 @@ ISL_ARG_BOOL(struct isl_options, schedule_separate_components, 0,
ISL_ARG_CHOICE(struct isl_options, schedule_algorithm, 0,
"schedule-algorithm", isl_schedule_algorithm_choice,
ISL_SCHEDULE_ALGORITHM_ISL, "scheduling algorithm to use")
-ISL_ARG_CHOICE(struct isl_options, schedule_fuse, 0, "schedule-fuse", fuse,
- ISL_SCHEDULE_FUSE_MAX, "level of fusion during scheduling")
+ISL_ARG_BOOL(struct isl_options, schedule_serialize_sccs, 0,
+ "schedule-serialize-sccs", 0,
+ "serialize strongly connected components in dependence graph")
+ISL_ARG_PHANTOM_USER_CHOICE_F(0, "schedule-fuse", fuse, &set_fuse,
+ ISL_SCHEDULE_FUSE_MAX, "level of fusion during scheduling",
+ ISL_ARG_HIDDEN)
ISL_ARG_BOOL(struct isl_options, tile_scale_tile_loops, 0,
"tile-scale-tile-loops", 1, "scale tile loops")
ISL_ARG_BOOL(struct isl_options, tile_shift_point_loops, 0,
@@ -239,10 +261,10 @@ ISL_CTX_SET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args,
ISL_CTX_GET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args,
schedule_algorithm)
-ISL_CTX_SET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args,
- schedule_fuse)
-ISL_CTX_GET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args,
- schedule_fuse)
+ISL_CTX_SET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
+ schedule_serialize_sccs)
+ISL_CTX_GET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
+ schedule_serialize_sccs)
ISL_CTX_SET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
tile_scale_tile_loops)
OpenPOWER on IntegriCloud