X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firprog.c;h=6fce2affb209d7037d22a8f099ae6122adde2cbc;hb=ab0e5a91b4acdb44ae152930042cbfa9e927bcdd;hp=872feaa5eaf5acfbab0b543af28a9b5aba62aa08;hpb=7918ce9434713009aa50a2c85ec706bcff29e9c4;p=libfirm diff --git a/ir/ir/irprog.c b/ir/ir/irprog.c index 872feaa5e..6fce2affb 100644 --- a/ir/ir/irprog.c +++ b/ir/ir/irprog.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -20,7 +20,7 @@ /** * @file * @brief Entry point to the representation of a whole program. - * @author Goetz Lindenmaier + * @author Goetz Lindenmaier, Michael Beck * @date 2000 * @version $Id$ */ @@ -67,6 +67,8 @@ static ir_prog *new_incomplete_ir_prog(void) { res->modes = NEW_ARR_F(ir_mode *, 0); res->opcodes = NEW_ARR_F(ir_op *, 0); res->last_region_nr = 0; + res->last_label_nr = 1; /* 0 is reserved as non-label */ + res->max_irg_idx = 0; #ifdef DEBUG_libfirm res->max_node_nr = 0; @@ -216,6 +218,10 @@ ir_graph *(get_irp_irg)(int pos){ return _get_irp_irg(pos); } +int get_irp_last_idx(void) { + return irp->max_irg_idx; +} + void set_irp_irg(int pos, ir_graph *irg) { assert(irp && irg); assert(pos < (ARR_LEN(irp->graphs))); @@ -298,7 +304,7 @@ void add_irp_mode(ir_mode *mode) { void add_irp_opcode(ir_op *opcode) { assert(opcode != NULL); assert(irp); - assert(opcode->code == ARR_LEN(irp->opcodes) && "new_ir_op() called in wrong order"); + assert(opcode->code == (unsigned) ARR_LEN(irp->opcodes) && "new_ir_op() called in wrong order"); ARR_APP1(ir_op *, irp->opcodes, opcode); } @@ -391,6 +397,11 @@ void set_irp_callee_info_state(irg_callee_info_state s) { } /* Returns a new, unique exception region number. */ -unsigned long (get_irp_next_region_nr)(void) { +ir_exc_region_t (get_irp_next_region_nr)(void) { return _get_irp_next_region_nr(); } + +/* Returns a new, unique label number. */ +ir_label_t (get_irp_next_label_nr)(void) { + return _get_irp_next_label_nr(); +}