aaccfc870ea6d2046622ad03b8823266c9daa8c8
[libfirm] / ir / ana / irloop_t.h
1 /* Copyright (C) 2002 by Universitaet Karlsruhe
2 * All rights reserved.
3 */
4
5 /**
6 * @file irloop_t.h
7 *
8 * @author Goetz Lindenmaier
9 */
10
11 /* $Id$ */
12
13 #include "firm_common.h"
14 #include "irloop.h"
15
16 #ifndef _IRLOOP_T_H_
17 #define _IRLOOP_T_H_
18
19 /** The loops datastructure. */
20 struct ir_loop {
21   firm_kind kind;                   /**< A type tag, set to k_ir_loop. */
22
23   struct ir_loop *outer_loop;       /**< The outer loop */
24   loop_element   *children;         /**< Mixed array: Contains sons and loop_nodes */
25 /*  struct ir_loop **sons; */           /**< Inner loops */
26 /*  struct ir_node **nodes; */          /**< Nodes in loop. */
27   int depth;                        /**< Nesting depth */
28   int n_sons;                       /**< Number of ir_nodes in array "children" */
29   int n_nodes;                      /**< Number of loop_nodes in array "childern" */
30
31   /*
32   struct state_entry *mem_phis;
33   struct state_entry *states;
34
35   struct obset **oval;
36   struct loop_node *link;
37   */
38 };
39
40 static INLINE void
41 add_loop_son(ir_loop *loop, ir_loop *son);
42
43 static INLINE void
44 add_loop_node(ir_loop *loop, ir_node *n);
45
46 #endif /* _IRLOOP_T_H_ */