X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firloop_t.h;h=4a47cd47ab344686d97f39116d8ef29af2008347;hb=4bad1346ff2abc3923beea23e5ac949acc7ca514;hp=816e69c6974e13d27022e3b62e3ba90aab6f9494;hpb=677f67f9b487e35b983148f48b933d54ee383db6;p=libfirm diff --git a/ir/ana/irloop_t.h b/ir/ana/irloop_t.h index 816e69c69..4a47cd47a 100644 --- a/ir/ana/irloop_t.h +++ b/ir/ana/irloop_t.h @@ -1,9 +1,19 @@ -/* Copyright (C) 2002 by Universitaet Karlsruhe -** All rights reserved. -** -** Authors: Goetz Lindenmaier -** -** irloops_t.h: +/* + * Project: libFIRM + * File name: ir/ana/irloop_t.h + * Purpose: Loop datastructure and access functions -- private stuff. + * 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. + */ + +/** +* @file irloop_t.h +* +* @author Goetz Lindenmaier */ /* $Id$ */ @@ -14,13 +24,16 @@ #ifndef _IRLOOP_T_H_ #define _IRLOOP_T_H_ +/** The loops datastructure. */ struct ir_loop { - firm_kind kind; /* A type tag, set to k_ir_loop. */ + firm_kind kind; /**< A type tag, set to k_ir_loop. */ + + struct ir_loop *outer_loop; /**< The outer loop */ + loop_element *children; /**< Mixed array: Contains sons and loop_nodes */ + int depth; /**< Nesting depth */ + int n_sons; /**< Number of ir_nodes in array "children" */ + int n_nodes; /**< Number of loop_nodes in array "childern" */ - struct ir_loop *outer_loop; /* The outer loop */ - struct ir_loop **sons; /* Inner loops */ - struct ir_node **nodes; /* Nodes in loop. */ - int depth; /* Nesting depth */ /* struct state_entry *mem_phis; struct state_entry *states; @@ -28,12 +41,20 @@ struct ir_loop { struct obset **oval; struct loop_node *link; */ +#ifdef DEBUG_libfirm + int loop_nr; /**< a unique node number for each loop node to make output + readable. */ + void *link; /**< GL @@@ For debuging the analyses. */ +#endif + }; -static INLINE void +void add_loop_son(ir_loop *loop, ir_loop *son); -static INLINE void +void add_loop_node(ir_loop *loop, ir_node *n); +/* The following functions are needed in ircfloop.c */ +void set_irn_loop (ir_node *n, ir_loop* loop); #endif /* _IRLOOP_T_H_ */