[polly] r310205 - Update to isl-0.18-812-g565da6e

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 6 08:51:16 PDT 2017


Author: grosser
Date: Sun Aug  6 08:51:16 2017
New Revision: 310205

URL: http://llvm.org/viewvc/llvm-project?rev=310205&view=rev
Log:
Update to isl-0.18-812-g565da6e

This update is mostly a maintenance update, but also exposes a couple of new
functions that will be needed for the next version of the isl++ bindings.

Added:
    polly/trunk/lib/External/isl/schedule_cmp.c
    polly/trunk/lib/External/isl/schedule_test.sh.in
    polly/trunk/lib/External/isl/test_inputs/schedule/
    polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.sc
    polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.st
Modified:
    polly/trunk/lib/External/isl/GIT_HEAD_ID
    polly/trunk/lib/External/isl/doc/user.pod
    polly/trunk/lib/External/isl/include/isl/aff.h
    polly/trunk/lib/External/isl/isl_aff.c

Modified: polly/trunk/lib/External/isl/GIT_HEAD_ID
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/GIT_HEAD_ID?rev=310205&r1=310204&r2=310205&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/GIT_HEAD_ID (original)
+++ polly/trunk/lib/External/isl/GIT_HEAD_ID Sun Aug  6 08:51:16 2017
@@ -1 +1 @@
-isl-0.18-809-gd5b4535
+isl-0.18-812-g565da6e

Modified: polly/trunk/lib/External/isl/doc/user.pod
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/doc/user.pod?rev=310205&r1=310204&r2=310205&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/doc/user.pod (original)
+++ polly/trunk/lib/External/isl/doc/user.pod Sun Aug  6 08:51:16 2017
@@ -6330,6 +6330,9 @@ into the first expression.
 	__isl_give isl_set *isl_aff_eq_set(
 		__isl_take isl_aff *aff1,
 		__isl_take isl_aff *aff2);
+	__isl_give isl_set *isl_aff_ne_set(
+		__isl_take isl_aff *aff1,
+		__isl_take isl_aff *aff2);
 	__isl_give isl_basic_set *isl_aff_le_basic_set(
 		__isl_take isl_aff *aff1,
 		__isl_take isl_aff *aff2);
@@ -6351,6 +6354,9 @@ into the first expression.
 	__isl_give isl_basic_set *isl_aff_gt_basic_set(
 		__isl_take isl_aff *aff1,
 		__isl_take isl_aff *aff2);
+	__isl_give isl_set *isl_aff_gt_set(
+		__isl_take isl_aff *aff1,
+		__isl_take isl_aff *aff2);
 	__isl_give isl_set *isl_pw_aff_eq_set(
 		__isl_take isl_pw_aff *pwaff1,
 		__isl_take isl_pw_aff *pwaff2);

Modified: polly/trunk/lib/External/isl/include/isl/aff.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/include/isl/aff.h?rev=310205&r1=310204&r2=310205&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/include/isl/aff.h (original)
+++ polly/trunk/lib/External/isl/include/isl/aff.h Sun Aug  6 08:51:16 2017
@@ -141,22 +141,32 @@ __isl_give isl_basic_set *isl_aff_neg_ba
 
 __isl_give isl_basic_set *isl_aff_eq_basic_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
+__isl_export
 __isl_give isl_set *isl_aff_eq_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
+__isl_export
+__isl_give isl_set *isl_aff_ne_set(__isl_take isl_aff *aff1,
+	__isl_take isl_aff *aff2);
 __isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
+__isl_export
 __isl_give isl_set *isl_aff_le_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
 __isl_give isl_basic_set *isl_aff_lt_basic_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
+__isl_export
 __isl_give isl_set *isl_aff_lt_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
 __isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
+__isl_export
 __isl_give isl_set *isl_aff_ge_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
 __isl_give isl_basic_set *isl_aff_gt_basic_set(__isl_take isl_aff *aff1,
 	__isl_take isl_aff *aff2);
+__isl_export
+__isl_give isl_set *isl_aff_gt_set(__isl_take isl_aff *aff1,
+	__isl_take isl_aff *aff2);
 
 __isl_constructor
 __isl_give isl_aff *isl_aff_read_from_str(isl_ctx *ctx, const char *str);
@@ -334,16 +344,22 @@ __isl_give isl_set *isl_pw_aff_nonneg_se
 __isl_give isl_set *isl_pw_aff_zero_set(__isl_take isl_pw_aff *pwaff);
 __isl_give isl_set *isl_pw_aff_non_zero_set(__isl_take isl_pw_aff *pwaff);
 
+__isl_export
 __isl_give isl_set *isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1,
 	__isl_take isl_pw_aff *pwaff2);
+__isl_export
 __isl_give isl_set *isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1,
 	__isl_take isl_pw_aff *pwaff2);
+__isl_export
 __isl_give isl_set *isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1,
 	__isl_take isl_pw_aff *pwaff2);
+__isl_export
 __isl_give isl_set *isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1,
 	__isl_take isl_pw_aff *pwaff2);
+__isl_export
 __isl_give isl_set *isl_pw_aff_ge_set(__isl_take isl_pw_aff *pwaff1,
 	__isl_take isl_pw_aff *pwaff2);
+__isl_export
 __isl_give isl_set *isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1,
 	__isl_take isl_pw_aff *pwaff2);
 

Modified: polly/trunk/lib/External/isl/isl_aff.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_aff.c?rev=310205&r1=310204&r2=310205&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_aff.c (original)
+++ polly/trunk/lib/External/isl/isl_aff.c Sun Aug  6 08:51:16 2017
@@ -2284,6 +2284,18 @@ __isl_give isl_set *isl_aff_ge_set(__isl
 	return isl_set_from_basic_set(isl_aff_ge_basic_set(aff1, aff2));
 }
 
+/* Return a set containing those elements in the shared domain space
+ * of aff1 and aff2 where aff1 is greater than aff2.
+ *
+ * If either of the two inputs is NaN, then the result is empty,
+ * as comparisons with NaN always return false.
+ */
+__isl_give isl_set *isl_aff_gt_set(__isl_take isl_aff *aff1,
+	__isl_take isl_aff *aff2)
+{
+	return isl_set_from_basic_set(isl_aff_gt_basic_set(aff1, aff2));
+}
+
 /* Return a basic set containing those elements in the shared space
  * of aff1 and aff2 where aff1 is smaller than or equal to aff2.
  */
@@ -2340,6 +2352,23 @@ __isl_give isl_set *isl_aff_eq_set(__isl
 	return isl_set_from_basic_set(isl_aff_eq_basic_set(aff1, aff2));
 }
 
+/* Return a set containing those elements in the shared domain space
+ * of aff1 and aff2 where aff1 and aff2 are not equal.
+ *
+ * If either of the two inputs is NaN, then the result is empty,
+ * as comparisons with NaN always return false.
+ */
+__isl_give isl_set *isl_aff_ne_set(__isl_take isl_aff *aff1,
+	__isl_take isl_aff *aff2)
+{
+	isl_set *set_lt, *set_gt;
+
+	set_lt = isl_aff_lt_set(isl_aff_copy(aff1),
+				isl_aff_copy(aff2));
+	set_gt = isl_aff_gt_set(aff1, aff2);
+	return isl_set_union_disjoint(set_lt, set_gt);
+}
+
 __isl_give isl_aff *isl_aff_add_on_domain(__isl_keep isl_set *dom,
 	__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
 {

Added: polly/trunk/lib/External/isl/schedule_cmp.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/schedule_cmp.c?rev=310205&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/schedule_cmp.c (added)
+++ polly/trunk/lib/External/isl/schedule_cmp.c Sun Aug  6 08:51:16 2017
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2017      Sven Verdoolaege
+ *
+ * Use of this software is governed by the MIT license
+ *
+ * Written by Sven Verdoolaege.
+ */
+
+#include <stdlib.h>
+
+#include <isl/arg.h>
+#include <isl/options.h>
+#include <isl/schedule.h>
+
+struct options {
+	struct isl_options *isl;
+	char *schedule1;
+	char *schedule2;
+};
+
+ISL_ARGS_START(struct options, options_args)
+ISL_ARG_CHILD(struct options, isl, "isl", &isl_options_args, "isl options")
+ISL_ARG_ARG(struct options, schedule1, "schedule1", NULL)
+ISL_ARG_ARG(struct options, schedule2, "schedule2", NULL)
+ISL_ARGS_END
+
+ISL_ARG_DEF(options, struct options, options_args)
+
+static void die(const char *msg)
+{
+	fprintf(stderr, "%s\n", msg);
+	exit(EXIT_FAILURE);
+}
+
+static FILE *open_or_die(const char *filename)
+{
+	FILE *file;
+
+	file = fopen(filename, "r");
+	if (!file) {
+		fprintf(stderr, "Unable to open %s\n", filename);
+		exit(EXIT_FAILURE);
+	}
+	return file;
+}
+
+/* Given two YAML descriptions of isl_schedule objects, check whether
+ * they are equivalent.
+ * Return EXIT_SUCCESS if they are and EXIT_FAILURE if they are not
+ * or if anything else went wrong.
+ */
+int main(int argc, char **argv)
+{
+	isl_ctx *ctx;
+	struct options *options;
+	FILE *input1, *input2;
+	isl_bool equal;
+	isl_schedule *s1, *s2;
+
+	options = options_new_with_defaults();
+	if (!options)
+		return EXIT_FAILURE;
+
+	ctx = isl_ctx_alloc_with_options(&options_args, options);
+	argc = options_parse(options, argc, argv, ISL_ARG_ALL);
+
+	input1 = open_or_die(options->schedule1);
+	input2 = open_or_die(options->schedule2);
+	s1 = isl_schedule_read_from_file(ctx, input1);
+	s2 = isl_schedule_read_from_file(ctx, input2);
+
+	equal = isl_schedule_plain_is_equal(s1, s2);
+	if (equal < 0)
+		return EXIT_FAILURE;
+	if (!equal)
+		die("schedules differ");
+
+	isl_schedule_free(s1);
+	isl_schedule_free(s2);
+	fclose(input1);
+	fclose(input2);
+	isl_ctx_free(ctx);
+
+	return EXIT_SUCCESS;
+}

Added: polly/trunk/lib/External/isl/schedule_test.sh.in
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/schedule_test.sh.in?rev=310205&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/schedule_test.sh.in (added)
+++ polly/trunk/lib/External/isl/schedule_test.sh.in Sun Aug  6 08:51:16 2017
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+EXEEXT=@EXEEXT@
+GREP=@GREP@
+SED=@SED@
+srcdir=@srcdir@
+
+failed=0
+
+for i in $srcdir/test_inputs/schedule/*.sc; do
+	echo $i;
+	base=`basename $i .sc`
+	test=test-$base.st
+	dir=`dirname $i`
+	ref=$dir/$base.st
+	options=`$GREP 'OPTIONS:' $i | $SED 's/.*://'`
+	(./isl_schedule$EXEEXT $options < $i > $test &&
+	./isl_schedule_cmp$EXEEXT $ref $test && rm $test) || failed=1
+done
+
+test $failed -eq 0 || exit

Added: polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.sc
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.sc?rev=310205&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.sc (added)
+++ polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.sc Sun Aug  6 08:51:16 2017
@@ -0,0 +1,5 @@
+# Check that the Feautrier schedule is not confused by
+# compressed nodes in a subgraph of the original dependence graph.
+# OPTIONS: --schedule-algorithm=feautrier
+domain: { A[]; B[0]; C[] }
+validity: { A[] -> B[0] }

Added: polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.st
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.st?rev=310205&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.st (added)
+++ polly/trunk/lib/External/isl/test_inputs/schedule/feautrier_compressed.st Sun Aug  6 08:51:16 2017
@@ -0,0 +1,11 @@
+domain: "{ B[0]; C[]; A[] }"
+child:
+  set:
+  - filter: "{ B[i0]; A[] }"
+    child:
+      schedule: "[{ B[i0] -> [(1)]; A[] -> [(0)] }]"
+      child:
+        set:
+        - filter: "{ A[] }"
+        - filter: "{ B[i0] }"
+  - filter: "{ C[] }"




More information about the llvm-commits mailing list