X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Finterval_analysis.c;h=fe96c36836a05724e951c8459689abd858f87247;hb=00894f1e0b6e74ca6c12d253dd30f7d873808977;hp=50702008219913a97ca942c8e14b1b6167626626;hpb=3571b99127e71fef4e0e017b2b60ea5be6210468;p=libfirm diff --git a/ir/ana/interval_analysis.c b/ir/ana/interval_analysis.c index 507020082..fe96c3683 100644 --- a/ir/ana/interval_analysis.c +++ b/ir/ana/interval_analysis.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. * @@ -30,6 +30,7 @@ #include #endif +#include "debug.h" #include "interval_analysis.h" #include "execution_frequency.h" #include "firm_common_t.h" @@ -44,6 +45,8 @@ #include "irprintf.h" #include "hashptr.h" +DEBUG_ONLY(static firm_dbg_module_t *dbg); + /*------------------------------------------------------------------*/ /* A new in array via a hashmap. */ /* The in array refers to the loop the block is contained in if the */ @@ -249,9 +252,7 @@ static void construct_interval_block(ir_node *b, ir_loop *l) { if (is_backedge(b, i)) { if (b != get_loop_element(l, 0).node) { - if (get_firm_verbosity()) { - ir_printf("Loophead not at loop position 0. %+F\n", b); - } + DB((dbg, LEVEL_1, "Loophead not at loop position 0. %+F\n", b)); } /* There are no backedges in the interval decomposition. */ add_region_in(b, NULL); @@ -260,7 +261,7 @@ static void construct_interval_block(ir_node *b, ir_loop *l) { cfop = get_Block_cfgpred(b, i); if (is_Proj(cfop)) { - if (get_irn_op(get_Proj_pred(cfop)) != op_Cond) { + if (!is_Cond(get_Proj_pred(cfop))) { cfop = skip_Proj(cfop); } else { assert(get_nodes_block(cfop) == get_nodes_block(skip_Proj(cfop))); @@ -269,8 +270,7 @@ static void construct_interval_block(ir_node *b, ir_loop *l) { pred = skip_Proj(get_nodes_block(cfop)); /* We want nice blocks. */ - assert( get_irn_op(pred) != op_Bad - && get_irn_op(skip_Proj(get_Block_cfgpred(b, i))) != op_Bad); + assert(!is_Bad(pred) && !is_Bad(skip_Proj(get_Block_cfgpred(b, i)))); pred_l = get_irn_loop(pred); if (pred_l == l) { add_region_in(b, pred); @@ -280,9 +280,7 @@ static void construct_interval_block(ir_node *b, ir_loop *l) { int found = find_inner_loop(b, l, pred, cfop); if (!found) { if (b != get_loop_element(l, 0).node) { - if (get_firm_verbosity()) { - ir_printf("Loop entry not at loop position 0. %+F\n", b); - } + DB((dbg, LEVEL_1, "Loop entry not at loop position 0. %+F\n", b)); } found = find_outer_loop(l, pred_l, pred, cfop); if (found) add_region_in(b, NULL); /* placeholder */ @@ -326,6 +324,8 @@ void construct_intervals(ir_graph *irg) { ir_graph *rem = current_ir_graph; current_ir_graph = irg; + FIRM_DBG_REGISTER(dbg, "firm.ana.interval"); + if (!region_attr_set) region_attr_set = new_set(region_attr_cmp, 256); @@ -498,11 +498,12 @@ void dump_interval_graph(ir_graph *irg, const char *suffix) { return; f = vcg_open(irg, suffix, "-intervals"); - dump_vcg_header(f, get_irg_dump_name(irg), NULL); + dump_vcg_header(f, get_irg_dump_name(irg), NULL, NULL); current_ir_graph = irg; dump_interval_loop(f, get_irg_loop(current_ir_graph)); - vcg_close(f); + dump_vcg_footer(f); + fclose(f); }