[polly] r298595 - Update to isl-0.18-402-ga30c537

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 23 06:38:24 PDT 2017


Author: grosser
Date: Thu Mar 23 08:38:24 2017
New Revision: 298595

URL: http://llvm.org/viewvc/llvm-project?rev=298595&view=rev
Log:
Update to isl-0.18-402-ga30c537

This is a regular maintenance update.

Modified:
    polly/trunk/lib/External/isl/GIT_HEAD_ID
    polly/trunk/lib/External/isl/doc/user.pod
    polly/trunk/lib/External/isl/include/isl/vertices.h
    polly/trunk/lib/External/isl/isl_map.c
    polly/trunk/lib/External/isl/isl_morph.c
    polly/trunk/lib/External/isl/isl_morph.h
    polly/trunk/lib/External/isl/isl_polynomial.c
    polly/trunk/lib/External/isl/isl_polynomial_private.h
    polly/trunk/lib/External/isl/isl_vertices.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=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/GIT_HEAD_ID (original)
+++ polly/trunk/lib/External/isl/GIT_HEAD_ID Thu Mar 23 08:38:24 2017
@@ -1 +1 @@
-isl-0.18-395-g77701b3
+isl-0.18-402-ga30c537

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=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/doc/user.pod (original)
+++ polly/trunk/lib/External/isl/doc/user.pod Thu Mar 23 08:38:24 2017
@@ -7705,7 +7705,8 @@ the following.
 
 	int isl_vertices_get_n_vertices(
 		__isl_keep isl_vertices *vertices);
-	void isl_vertices_free(__isl_take isl_vertices *vertices);
+	__isl_null isl_vertices *isl_vertices_free(
+		__isl_take isl_vertices *vertices);
 
 Vertices can be inspected and destroyed using the following functions.
 
@@ -8725,9 +8726,12 @@ pairs of corresponding sink iterations a
 To compute standard flow dependences, the sink should be
 a read, while the sources should be writes.
 If any of the source accesses are marked as being I<may>
-accesses, then there will be a dependence from the last
+accesses, then there will be a (may) dependence from the last
 I<must> access B<and> from any I<may> access that follows
-this last I<must> access.
+this last I<must> access, but still precedes the sink access.
+Only dependences originating in a must access and without
+any may accesses between the must access and the sink access
+are considered to be must dependences.
 In particular, if I<all> sources are I<may> accesses,
 then memory based dependence analysis is performed.
 If, on the other hand, all sources are I<must> accesses,

Modified: polly/trunk/lib/External/isl/include/isl/vertices.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/include/isl/vertices.h?rev=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/include/isl/vertices.h (original)
+++ polly/trunk/lib/External/isl/include/isl/vertices.h Thu Mar 23 08:38:24 2017
@@ -29,7 +29,7 @@ isl_ctx *isl_vertices_get_ctx(__isl_keep
 int isl_vertices_get_n_vertices(__isl_keep isl_vertices *vertices);
 isl_stat isl_vertices_foreach_vertex(__isl_keep isl_vertices *vertices,
 	isl_stat (*fn)(__isl_take isl_vertex *vertex, void *user), void *user);
-void isl_vertices_free(__isl_take isl_vertices *vertices);
+__isl_null isl_vertices *isl_vertices_free(__isl_take isl_vertices *vertices);
 
 isl_ctx *isl_cell_get_ctx(__isl_keep isl_cell *cell);
 __isl_give isl_basic_set *isl_cell_get_domain(__isl_keep isl_cell *cell);

Modified: polly/trunk/lib/External/isl/isl_map.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_map.c?rev=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_map.c (original)
+++ polly/trunk/lib/External/isl/isl_map.c Thu Mar 23 08:38:24 2017
@@ -3938,6 +3938,8 @@ __isl_give isl_basic_map *isl_basic_map_
 		__isl_take isl_basic_map *bmap,
 		enum isl_dim_type type, unsigned first, unsigned n)
 {
+	isl_bool empty;
+
 	if (n == 0)
 		return basic_map_space_reset(bmap, type);
 	if (type == isl_dim_div)
@@ -3945,6 +3947,12 @@ __isl_give isl_basic_map *isl_basic_map_
 			"cannot project out existentially quantified variables",
 			return isl_basic_map_free(bmap));
 
+	empty = isl_basic_map_plain_is_empty(bmap);
+	if (empty < 0)
+		return isl_basic_map_free(bmap);
+	if (empty)
+		bmap = isl_basic_map_set_to_empty(bmap);
+
 	bmap = drop_irrelevant_constraints(bmap, type, first, n);
 	if (!bmap)
 		return NULL;

Modified: polly/trunk/lib/External/isl/isl_morph.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_morph.c?rev=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_morph.c (original)
+++ polly/trunk/lib/External/isl/isl_morph.c Thu Mar 23 08:38:24 2017
@@ -83,19 +83,21 @@ __isl_give isl_morph *isl_morph_cow(__is
 	return isl_morph_dup(morph);
 }
 
-void isl_morph_free(__isl_take isl_morph *morph)
+__isl_null isl_morph *isl_morph_free(__isl_take isl_morph *morph)
 {
 	if (!morph)
-		return;
+		return NULL;
 
 	if (--morph->ref > 0)
-		return;
+		return NULL;
 
 	isl_basic_set_free(morph->dom);
 	isl_basic_set_free(morph->ran);
 	isl_mat_free(morph->map);
 	isl_mat_free(morph->inv);
 	free(morph);
+
+	return NULL;
 }
 
 /* Is "morph" an identity on the parameters?

Modified: polly/trunk/lib/External/isl/isl_morph.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_morph.h?rev=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_morph.h (original)
+++ polly/trunk/lib/External/isl/isl_morph.h Thu Mar 23 08:38:24 2017
@@ -42,7 +42,7 @@ __isl_give isl_morph *isl_morph_alloc(
 	__isl_take isl_mat *map, __isl_take isl_mat *inv);
 __isl_give isl_morph *isl_morph_copy(__isl_keep isl_morph *morph);
 __isl_give isl_morph *isl_morph_identity(__isl_keep isl_basic_set *bset);
-void isl_morph_free(__isl_take isl_morph *morph);
+__isl_null isl_morph *isl_morph_free(__isl_take isl_morph *morph);
 
 __isl_give isl_space *isl_morph_get_dom_space(__isl_keep isl_morph *morph);
 __isl_give isl_space *isl_morph_get_ran_space(__isl_keep isl_morph *morph);

Modified: polly/trunk/lib/External/isl/isl_polynomial.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_polynomial.c?rev=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_polynomial.c (original)
+++ polly/trunk/lib/External/isl/isl_polynomial.c Thu Mar 23 08:38:24 2017
@@ -620,13 +620,13 @@ __isl_give struct isl_upoly *isl_upoly_c
 	return isl_upoly_dup(up);
 }
 
-void isl_upoly_free(__isl_take struct isl_upoly *up)
+__isl_null struct isl_upoly *isl_upoly_free(__isl_take struct isl_upoly *up)
 {
 	if (!up)
-		return;
+		return NULL;
 
 	if (--up->ref > 0)
-		return;
+		return NULL;
 
 	if (up->var < 0)
 		upoly_free_cst((struct isl_upoly_cst *)up);
@@ -635,6 +635,7 @@ void isl_upoly_free(__isl_take struct is
 
 	isl_ctx_deref(up->ctx);
 	free(up);
+	return NULL;
 }
 
 static void isl_upoly_cst_reduce(__isl_keep struct isl_upoly_cst *cst)
@@ -4566,6 +4567,9 @@ error:
  *	0	if cst == 0
  *	1	if cst == 1
  *  infinity	if cst == -1
+ *
+ * If cst == -1, then explicitly check whether the domain is empty and,
+ * if so, return 0 instead.
  */
 static __isl_give isl_pw_qpolynomial *constant_on_domain(
 	__isl_take isl_basic_set *bset, int cst)
@@ -4573,6 +4577,8 @@ static __isl_give isl_pw_qpolynomial *co
 	isl_space *dim;
 	isl_qpolynomial *qp;
 
+	if (cst < 0 && isl_basic_set_is_empty(bset) == isl_bool_true)
+		cst = 0;
 	if (!bset)
 		return NULL;
 

Modified: polly/trunk/lib/External/isl/isl_polynomial_private.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_polynomial_private.h?rev=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_polynomial_private.h (original)
+++ polly/trunk/lib/External/isl/isl_polynomial_private.h Thu Mar 23 08:38:24 2017
@@ -102,7 +102,7 @@ __isl_give struct isl_upoly *isl_upoly_z
 __isl_give struct isl_upoly *isl_upoly_copy(__isl_keep struct isl_upoly *up);
 __isl_give struct isl_upoly *isl_upoly_cow(__isl_take struct isl_upoly *up);
 __isl_give struct isl_upoly *isl_upoly_dup(__isl_keep struct isl_upoly *up);
-void isl_upoly_free(__isl_take struct isl_upoly *up);
+__isl_null struct isl_upoly *isl_upoly_free(__isl_take struct isl_upoly *up);
 __isl_give struct isl_upoly *isl_upoly_mul(__isl_take struct isl_upoly *up1,
 	__isl_take struct isl_upoly *up2);
 

Modified: polly/trunk/lib/External/isl/isl_vertices.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_vertices.c?rev=298595&r1=298594&r2=298595&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_vertices.c (original)
+++ polly/trunk/lib/External/isl/isl_vertices.c Thu Mar 23 08:38:24 2017
@@ -35,15 +35,15 @@ __isl_give isl_vertices *isl_vertices_co
 	return vertices;
 }
 
-void isl_vertices_free(__isl_take isl_vertices *vertices)
+__isl_null isl_vertices *isl_vertices_free(__isl_take isl_vertices *vertices)
 {
 	int i;
 
 	if (!vertices)
-		return;
+		return NULL;
 
 	if (--vertices->ref > 0)
-		return;
+		return NULL;
 
 	for (i = 0; i < vertices->n_vertices; ++i) {
 		isl_basic_set_free(vertices->v[i].vertex);
@@ -59,6 +59,8 @@ void isl_vertices_free(__isl_take isl_ve
 
 	isl_basic_set_free(vertices->bset);
 	free(vertices);
+
+	return NULL;
 }
 
 struct isl_vertex_list {
@@ -66,7 +68,7 @@ struct isl_vertex_list {
 	struct isl_vertex_list *next;
 };
 
-static void free_vertex_list(struct isl_vertex_list *list)
+static struct isl_vertex_list *free_vertex_list(struct isl_vertex_list *list)
 {
 	struct isl_vertex_list *next;
 
@@ -76,6 +78,8 @@ static void free_vertex_list(struct isl_
 		isl_basic_set_free(list->v.dom);
 		free(list);
 	}
+
+	return NULL;
 }
 
 static __isl_give isl_vertices *vertices_from_list(__isl_keep isl_basic_set *bset,




More information about the llvm-commits mailing list