X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Fircons.c;h=f38994b2827e0098a139b6e027f10b64c1934b22;hb=7d070c58e7bef1ed875fac066b57f29de449724b;hp=6ac3a8838d423380939666b0f00a451be1371e3b;hpb=2a018b8111bd0596816c1d00c38a0024857753f7;p=libfirm diff --git a/ir/ir/ircons.c b/ir/ir/ircons.c index 6ac3a8838..f38994b28 100644 --- a/ir/ir/ircons.c +++ b/ir/ir/ircons.c @@ -285,13 +285,11 @@ static ir_node *get_r_value_internal(ir_node *block, int pos, ir_mode *mode) return res; /* We ran into a cycle. This may happen in unreachable loops. */ - if (irn_visited(block)) { + if (irn_visited_else_mark(block)) { /* Since the loop is unreachable, return a Bad. */ return new_r_Bad(irg); } - mark_irn_visited(block); - /* in a matured block we can immediately determine the phi arguments */ if (get_Block_matured(block)) { int arity = get_irn_arity(block); @@ -503,7 +501,6 @@ ir_node *new_rd_immBlock(dbg_info *dbgi, ir_graph *irg) res = new_ir_node(dbgi, irg, NULL, op_Block, mode_BB, -1, NULL); set_Block_matured(res, 0); - res->attr.block.is_dead = 0; res->attr.block.irg.irg = irg; res->attr.block.backedge = NULL; res->attr.block.in_cg = NULL; @@ -598,9 +595,8 @@ static ir_mode *guess_recursively(ir_node *block, int pos) int n_preds; int i; - if (irn_visited(block)) + if (irn_visited_else_mark(block)) return NULL; - mark_irn_visited(block); /* already have a defintion -> we can simply look at its mode */ value = block->attr.block.graph_arr[pos];