X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firouts.c;h=726f52ebc5f6df644238382bb2d014a04af16d81;hb=d2dc2564b47d9c113d7e6e598574e9733627fcca;hp=0a1954f3391b888d0dbc0a0ed7e84775315744c8;hpb=2051f0177dce3207a9c5e8d944ddeb20b07076f6;p=libfirm diff --git a/ir/ana/irouts.c b/ir/ana/irouts.c index 0a1954f33..726f52ebc 100644 --- a/ir/ana/irouts.c +++ b/ir/ana/irouts.c @@ -417,7 +417,6 @@ void compute_irg_outs(ir_graph *irg) { if (current_ir_graph->outs_state != outs_none) free_irg_outs(current_ir_graph); - current_ir_graph->outs_state = outs_consistent; /* This first iteration counts the overall number of out edges and the number of out edges for each node. */ @@ -441,9 +440,15 @@ void compute_irg_outs(ir_graph *irg) { the out block walker. */ fix_start_proj(irg); + current_ir_graph->outs_state = outs_consistent; current_ir_graph = rem; } +void assure_irg_outs(ir_graph *irg) { + if (get_irg_outs_state(irg) != outs_consistent) + compute_irg_outs(irg); +} + void compute_irp_outs(void) { int i, n_irgs = get_irp_n_irgs(); for (i = 0; i < n_irgs; ++i)