X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Fircfscc.c;h=889e3c5d482fa8cda30edaa821dcc0657c7627c3;hb=3d306914ac98469e3d43b59de125efe64ddea8a5;hp=d4dac54e9988829cb7d5aa18c67eaad49c37f0aa;hpb=32745b2ad1a6286b79f5af48768507e1866134fd;p=libfirm diff --git a/ir/ana/ircfscc.c b/ir/ana/ircfscc.c index d4dac54e9..889e3c5d4 100644 --- a/ir/ana/ircfscc.c +++ b/ir/ana/ircfscc.c @@ -1,18 +1,31 @@ /* - * Project: libFIRM - * File name: ir/ana/irscc.c - * Purpose: Compute the strongly connected regions and build - * backedge/cfloop datastructures. - * A variation on the Tarjan algorithm. See also [Trapp:99], - * Chapter 5.2.1.2. - * Author: Goetz Lindenmaier - * Modified by: - * Created: 7.2002 - * CVS-ID: $Id$ - * Copyright: (c) 2002-2003 Universität Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. */ +/** + * @file + * @brief Compute the strongly connected regions and build backedge/cfloop + * datastructures. A variation on the Tarjan algorithm. See also + * [Trapp:99], Chapter 5.2.1.2. + * @author Goetz Lindenmaier + * @date 7.2002 + * @version $Id$ + */ #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -291,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); @@ -369,7 +384,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; @@ -406,7 +420,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; @@ -792,7 +805,7 @@ void free_cfloop_information(ir_graph *irg) { if (get_irg_loop(irg)) loop_reset_backedges(get_irg_loop(irg)); set_irg_loop(irg, NULL); - set_irg_loopinfo_state(current_ir_graph, loopinfo_none); + set_irg_loopinfo_state(irg, loopinfo_none); /* We cannot free the cfloop nodes, they are on the obstack. */ }