summaryrefslogtreecommitdiff
path: root/cloog-core/source/isl/backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'cloog-core/source/isl/backend.c')
-rw-r--r--cloog-core/source/isl/backend.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/cloog-core/source/isl/backend.c b/cloog-core/source/isl/backend.c
new file mode 100644
index 0000000..6ddb9f9
--- /dev/null
+++ b/cloog-core/source/isl/backend.c
@@ -0,0 +1,37 @@
+#include <cloog/isl/cloog.h>
+
+/**
+ * Allocate and initialize full state.
+ */
+CloogState *cloog_state_malloc(void)
+{
+ return cloog_isl_state_malloc(NULL);
+}
+
+/**
+ * Allocate and initialize full state for isl backend.
+ */
+CloogState *cloog_isl_state_malloc(struct isl_ctx *ctx)
+{
+ CloogState *state;
+ int allocated = !ctx;
+
+ state = cloog_core_state_malloc();
+ if (!ctx)
+ ctx = isl_ctx_alloc();
+ state->backend = isl_alloc_type(ctx, CloogBackend);
+ state->backend->ctx = ctx;
+ state->backend->ctx_allocated = allocated;
+ return state;
+}
+
+/**
+ * Free state and backend independent parts.
+ */
+void cloog_state_free(CloogState *state)
+{
+ if (state->backend->ctx_allocated)
+ isl_ctx_free(state->backend->ctx);
+ free(state->backend);
+ cloog_core_state_free(state);
+}