1#include <cloog/isl/cloog.h> 2 3/** 4 * Allocate and initialize full state. 5 */ 6CloogState *cloog_state_malloc(void) 7{ 8 return cloog_isl_state_malloc(NULL); 9} 10 11/** 12 * Allocate and initialize full state for isl backend. 13 */ 14CloogState *cloog_isl_state_malloc(struct isl_ctx *ctx) 15{ 16 CloogState *state; 17 int allocated = !ctx; 18 19 state = cloog_core_state_malloc(); 20 if (!ctx) 21 ctx = isl_ctx_alloc(); 22 state->backend = isl_alloc_type(ctx, CloogBackend); 23 state->backend->ctx = ctx; 24 state->backend->ctx_allocated = allocated; 25 return state; 26} 27 28/** 29 * Free state and backend independent parts. 30 */ 31void cloog_state_free(CloogState *state) 32{ 33 if (state->backend->ctx_allocated) 34 isl_ctx_free(state->backend->ctx); 35 free(state->backend); 36 cloog_core_state_free(state); 37} 38