X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Fircons.c;h=7de8333aed97346b725ed755cfc78239a278112c;hb=8f355cb9b3d20c10f71d1b1e17cbf59a51ced83b;hp=30724fe929e1b8c6105c869efce11bd0fc53d125;hpb=9ab3d84833ffff735112b3a08558aa83258121ba;p=libfirm diff --git a/ir/ir/ircons.c b/ir/ir/ircons.c index 30724fe92..7de8333ae 100644 --- a/ir/ir/ircons.c +++ b/ir/ir/ircons.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. * @@ -531,7 +531,7 @@ new_bd_Store(dbg_info *db, ir_node *block, static ir_node * new_bd_Alloc(dbg_info *db, ir_node *block, ir_node *store, - ir_node *size, ir_type *alloc_type, where_alloc where) { + ir_node *size, ir_type *alloc_type, ir_where_alloc where) { ir_node *in[2]; ir_node *res; ir_graph *irg = current_ir_graph; @@ -549,7 +549,7 @@ new_bd_Alloc(dbg_info *db, ir_node *block, ir_node *store, static ir_node * new_bd_Free(dbg_info *db, ir_node *block, ir_node *store, - ir_node *ptr, ir_node *size, ir_type *free_type, where_alloc where) { + ir_node *ptr, ir_node *size, ir_type *free_type, ir_where_alloc where) { ir_node *in[3]; ir_node *res; ir_graph *irg = current_ir_graph; @@ -1137,7 +1137,7 @@ new_rd_Store(dbg_info *db, ir_graph *irg, ir_node *block, ir_node * new_rd_Alloc(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store, - ir_node *size, ir_type *alloc_type, where_alloc where) { + ir_node *size, ir_type *alloc_type, ir_where_alloc where) { ir_node *res; ir_graph *rem = current_ir_graph; @@ -1150,7 +1150,7 @@ new_rd_Alloc(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store, ir_node * new_rd_Free(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store, - ir_node *ptr, ir_node *size, ir_type *free_type, where_alloc where) { + ir_node *ptr, ir_node *size, ir_type *free_type, ir_where_alloc where) { ir_node *res; ir_graph *rem = current_ir_graph; @@ -1606,11 +1606,11 @@ ir_node *new_r_Store(ir_graph *irg, ir_node *block, return new_rd_Store(NULL, irg, block, store, adr, val); } ir_node *new_r_Alloc(ir_graph *irg, ir_node *block, ir_node *store, - ir_node *size, ir_type *alloc_type, where_alloc where) { + ir_node *size, ir_type *alloc_type, ir_where_alloc where) { return new_rd_Alloc(NULL, irg, block, store, size, alloc_type, where); } ir_node *new_r_Free(ir_graph *irg, ir_node *block, ir_node *store, - ir_node *ptr, ir_node *size, ir_type *free_type, where_alloc where) { + ir_node *ptr, ir_node *size, ir_type *free_type, ir_where_alloc where) { return new_rd_Free(NULL, irg, block, store, ptr, size, free_type, where); } ir_node *new_r_Sync(ir_graph *irg, ir_node *block, int arity, ir_node *in[]) { @@ -2000,9 +2000,11 @@ get_r_frag_value_internal(ir_node *block, ir_node *cfOp, int pos, ir_mode *mode) * @param prev_cf_op if cf_pred is a Proj, the predecessor node, else equal to cf_pred */ static int is_exception_flow(ir_node *cf_pred, ir_node *prev_cf_op) { - /* all projections from a raise are exceptional control flow */ - if (is_Raise(prev_cf_op)) - return 1; + /* + * Note: all projections from a raise are "exceptional control flow" we we handle it + * like a normal Jmp, because there is no "regular" one. + * That's why Raise is no "fragile_op"! + */ if (is_fragile_op(prev_cf_op)) { if (is_Proj(cf_pred)) { if (get_Proj_proj(cf_pred) == pn_Generic_X_regular) { @@ -2478,7 +2480,7 @@ new_d_Store(dbg_info *db, ir_node *store, ir_node *addr, ir_node *val) { ir_node * new_d_Alloc(dbg_info *db, ir_node *store, ir_node *size, ir_type *alloc_type, - where_alloc where) { + ir_where_alloc where) { ir_node *res; res = new_bd_Alloc(db, current_ir_graph->current_block, store, size, alloc_type, where); @@ -2491,7 +2493,7 @@ new_d_Alloc(dbg_info *db, ir_node *store, ir_node *size, ir_type *alloc_type, ir_node * new_d_Free(dbg_info *db, ir_node *store, ir_node *ptr, - ir_node *size, ir_type *free_type, where_alloc where) { + ir_node *size, ir_type *free_type, ir_where_alloc where) { return new_bd_Free(db, current_ir_graph->current_block, store, ptr, size, free_type, where); } @@ -2712,7 +2714,7 @@ add_immBlock_pred(ir_node *block, ir_node *jmp) { assert(!block->attr.block.is_matured && "Error: Block already matured!\n"); assert(block->attr.block.is_mb_head && "Error: Cannot add a predecessor to a PartBlock"); - assert(jmp != NULL); + assert(is_ir_node(jmp)); ARR_APP1(ir_node *, block->in, jmp); /* Call the hook */ @@ -2751,6 +2753,7 @@ set_value(int pos, ir_node *value) { ir_graph *irg = current_ir_graph; assert(get_irg_phase_state(irg) == phase_building); assert(pos+1 < irg->n_loc); + assert(is_ir_node(value)); irg->current_block->attr.block.graph_arr[pos + 1] = value; } /* set_value */ @@ -2985,11 +2988,11 @@ ir_node *new_Store(ir_node *store, ir_node *addr, ir_node *val) { return new_d_Store(NULL, store, addr, val); } ir_node *new_Alloc(ir_node *store, ir_node *size, ir_type *alloc_type, - where_alloc where) { + ir_where_alloc where) { return new_d_Alloc(NULL, store, size, alloc_type, where); } ir_node *new_Free(ir_node *store, ir_node *ptr, ir_node *size, - ir_type *free_type, where_alloc where) { + ir_type *free_type, ir_where_alloc where) { return new_d_Free(NULL, store, ptr, size, free_type, where); } ir_node *new_Sync(int arity, ir_node *in[]) {