diff options
Diffstat (limited to 'cloog-core/source/isl/backend.c')
-rw-r--r-- | cloog-core/source/isl/backend.c | 37 |
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); +} |