summaryrefslogtreecommitdiffstats
path: root/polly/lib/External/ppcg/schedule.h
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/External/ppcg/schedule.h')
-rw-r--r--polly/lib/External/ppcg/schedule.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/polly/lib/External/ppcg/schedule.h b/polly/lib/External/ppcg/schedule.h
new file mode 100644
index 00000000000..25a12aea010
--- /dev/null
+++ b/polly/lib/External/ppcg/schedule.h
@@ -0,0 +1,56 @@
+#ifndef _SCHEDULE_H
+#define _SCHEDULE_H
+
+#include <isl/id.h>
+#include <isl/set_type.h>
+#include <isl/map_type.h>
+#include <isl/union_map_type.h>
+
+#include <pet.h>
+
+/* An access to an outer array element or an iterator.
+ * Accesses to iterators have an access relation that maps to an unnamed space.
+ * An access may be both read and write.
+ * If the access relation is empty, then the output dimension may
+ * not be equal to the dimension of the corresponding array.
+ */
+struct gpu_stmt_access {
+ /* Access reads elements */
+ int read;
+ /* Access writes elements */
+ int write;
+ /* All writes are definite writes. */
+ int exact_write;
+ /* The number of index expressions specified in the access. */
+ int n_index;
+
+ /* May access relation */
+ isl_map *access;
+ /* May access relation with as domain a mapping from iteration domain
+ * to a reference identifier.
+ */
+ isl_map *tagged_access;
+ /* The reference id of the corresponding pet_expr. */
+ isl_id *ref_id;
+
+ struct gpu_stmt_access *next;
+};
+
+struct gpu_stmt {
+ isl_id *id;
+ struct pet_stmt *stmt;
+
+ /* Linked list of accesses. */
+ struct gpu_stmt_access *accesses;
+};
+
+__isl_give isl_map *project_out(__isl_take isl_space *dim,
+ int len, int first, int n);
+__isl_give isl_map *projection(__isl_take isl_space *dim,
+ int src_len, int dst_len);
+__isl_give isl_set *parametrization(__isl_take isl_space *space,
+ int len, int first, __isl_keep isl_id_list *names);
+__isl_give isl_set *extend(__isl_take isl_set *set, int dst_len);
+__isl_give isl_union_map *align_range(__isl_take isl_union_map *umap);
+
+#endif
OpenPOWER on IntegriCloud