summaryrefslogtreecommitdiff
path: root/polly/lib/External/isl/isl_pw_split_dims_templ.c
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/External/isl/isl_pw_split_dims_templ.c')
-rw-r--r--polly/lib/External/isl/isl_pw_split_dims_templ.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/polly/lib/External/isl/isl_pw_split_dims_templ.c b/polly/lib/External/isl/isl_pw_split_dims_templ.c
new file mode 100644
index 000000000000..68e9165b6169
--- /dev/null
+++ b/polly/lib/External/isl/isl_pw_split_dims_templ.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2010 INRIA Saclay
+ *
+ * Use of this software is governed by the MIT license
+ *
+ * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France,
+ * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod,
+ * 91893 Orsay, France
+ */
+
+#include <isl_pw_macro.h>
+
+__isl_give PW *FN(PW,split_dims)(__isl_take PW *pw,
+ enum isl_dim_type type, unsigned first, unsigned n)
+{
+ int i;
+ isl_size n_piece;
+
+ n_piece = FN(PW,n_piece)(pw);
+ if (n_piece < 0)
+ return FN(PW,free)(pw);
+ if (n == 0)
+ return pw;
+
+ if (type == isl_dim_in)
+ type = isl_dim_set;
+
+ for (i = 0; i < n; ++i) {
+ isl_set *domain;
+
+ domain = FN(PW,take_domain_at)(pw, i);
+ domain = isl_set_split_dims(domain, type, first, n);
+ pw = FN(PW,restore_domain_at)(pw, i, domain);
+ }
+
+ return pw;
+}