X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Fircfscc.c;h=81a0bef5eb77ddcf99f42c580fb1862283e2a55b;hb=cf79ddfe6713891acdc41aa3ecd5f5a61034ee94;hp=9235e0a1bdf937f3781945ab9d85a6d1d1acf78a;hpb=9b716841c3b0865b86af8d3890b3914060c37ed0;p=libfirm diff --git a/ir/ana/ircfscc.c b/ir/ana/ircfscc.c index 9235e0a1b..81a0bef5e 100644 --- a/ir/ana/ircfscc.c +++ b/ir/ana/ircfscc.c @@ -1,5 +1,5 @@ /* - * Copyrigth (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. * @@ -304,7 +304,9 @@ static ir_loop *new_loop (void) { * Called from a walker. */ static INLINE void -init_node (ir_node *n, void *env) { +init_node (ir_node *n, void *env) +{ + (void) env; if (is_Block(n)) set_irn_link (n, new_scc_info()); clear_backedges(n); @@ -330,6 +332,7 @@ init_scc (ir_graph *irg) { irg_walk_graph(irg, init_node, NULL, NULL); } +#ifdef INTERPROCEDURAL_VIEW /** * Initializes the scc algorithm for the interprocedural case. */ @@ -342,6 +345,7 @@ init_ip_scc (void) { cg_walk (link_to_reg_end, NULL, NULL); #endif } +#endif /** * Condition for breaking the recursion: n is the block @@ -382,7 +386,6 @@ is_head (ir_node *n, ir_node *root) some_outof_loop = 1; } else { if (get_irn_uplink(pred) < get_irn_uplink(root)) { - DDMN(pred); DDMN(root); assert(get_irn_uplink(pred) >= get_irn_uplink(root)); } some_in_loop = 1; @@ -419,7 +422,6 @@ is_endless_head (ir_node *n, ir_node *root) some_outof_loop = 1; //printf(" some out of loop "); } else { if(get_irn_uplink(pred) < get_irn_uplink(root)) { - DDMN(pred); DDMN(root); assert(get_irn_uplink(pred) >= get_irn_uplink(root)); } some_in_loop = 1; @@ -696,7 +698,7 @@ int construct_cf_backedges(ir_graph *irg) { return max_loop_depth; } - +#ifdef INTERPROCEDURAL_VIEW int construct_ip_cf_backedges (void) { ir_graph *rem = current_ir_graph; int rem_ipv = get_interprocedural_view(); @@ -768,20 +770,27 @@ int construct_ip_cf_backedges (void) { set_interprocedural_view(rem_ipv); return max_loop_depth; } +#endif /** * Clear the intra- and the interprocedural * backedge information pf a block. */ static void reset_backedges(ir_node *block) { - int rem = get_interprocedural_view(); + int rem; assert(is_Block(block)); +#ifdef INTERPROCEDURAL_VIEW + rem = get_interprocedural_view(); set_interprocedural_view(1); clear_backedges(block); set_interprocedural_view(0); clear_backedges(block); set_interprocedural_view(rem); +#else + (void) rem; + clear_backedges(block); +#endif } /** @@ -812,10 +821,14 @@ void free_cfloop_information(ir_graph *irg) { void free_all_cfloop_information (void) { int i; +#ifdef INTERPROCEDURAL_VIEW int rem = get_interprocedural_view(); set_interprocedural_view(1); /* To visit all filter nodes */ +#endif for (i = get_irp_n_irgs() - 1; i >= 0; --i) { free_cfloop_information(get_irp_irg(i)); } +#ifdef INTERPROCEDURAL_VIEW set_interprocedural_view(rem); +#endif }