X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firprog.c;h=22dff63d53bbb5e73a0a7470da525db054c5e5d7;hb=64d13bb5d7e4b2c992d562840c9625afad83fa22;hp=5ca65ce3401ac41974050fc001b476338ec02f97;hpb=e9acaaa06c895c2632071e8d42e8632253c3d9f8;p=libfirm diff --git a/ir/ir/irprog.c b/ir/ir/irprog.c index 5ca65ce34..22dff63d5 100644 --- a/ir/ir/irprog.c +++ b/ir/ir/irprog.c @@ -24,9 +24,7 @@ * @date 2000 * @version $Id$ */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include "config.h" #ifdef HAVE_STRING_H # include @@ -51,11 +49,9 @@ ir_prog *get_irp(void) { return irp; } /** * Create a new incomplete ir_prog. */ -static ir_prog *new_incomplete_ir_prog(void) { - ir_prog *res; - - res = xmalloc(sizeof(*res)); - memset(res, 0, sizeof(*res)); +static ir_prog *new_incomplete_ir_prog(void) +{ + ir_prog *res = XMALLOCZ(ir_prog); res->kind = k_ir_prog; res->graphs = NEW_ARR_F(ir_graph *, 0); @@ -69,7 +65,10 @@ static ir_prog *new_incomplete_ir_prog(void) { res->max_irg_idx = 0; #ifdef DEBUG_libfirm - res->max_node_nr = 0; + res->max_node_nr = 0; +#endif +#ifndef NDEBUG + res->reserved_resources = 0; #endif return res; @@ -434,3 +433,19 @@ ident *get_irp_asm(int pos) { assert(pos <= 0 && pos < get_irp_n_asms()); return irp->global_asms[pos]; } + +#ifndef NDEBUG +void irp_reserve_resources(ir_prog *irp, ir_resources_t resources) { + assert((irp->reserved_resources & resources) == 0); + irp->reserved_resources |= resources; +} + +void irp_free_resources(ir_prog *irp, ir_resources_t resources) { + assert((irp->reserved_resources & resources) == resources); + irp->reserved_resources &= ~resources; +} + +ir_resources_t irp_resources_reserved(const ir_prog *irp) { + return irp->reserved_resources; +} +#endif