Remove duplicate implementation of foreach_set().
[libfirm] / ir / ana / irloop_t.h
index 04ee7e3..4c22469 100644 (file)
@@ -22,7 +22,6 @@
  * @brief    Loop datastructure and access functions -- private stuff.
  * @author   Goetz Lindenmaier
  * @date     7.2002
- * @version  $Id$
  */
 #ifndef FIRM_ANA_IRLOOP_T_H
 #define FIRM_ANA_IRLOOP_T_H
@@ -44,7 +43,7 @@ typedef enum loop_flags {
        loop_end_false     = 0x00000020,  /**< this loop end can't be computed "from compute_loop_info.c" */
        do_loop            = 0x00000040,  /**< this is a do loop */
        once               = 0x00000080,  /**< this is a do loop, with a false condition. It iterate exactly once. */
-       loop_outer_loop    = 0x00000100   /**< id set, this loop has child loops (is a no leaf). */
+       loop_outer_loop    = 0x00000100   /**< if set, this loop has child loops (is a no leaf). */
 } loop_flags_t;
 
 /**
@@ -59,22 +58,17 @@ typedef enum loop_flags {
  * the loop within the nesting.  Further it contains a list of the
  * loops with nesting depth -1.  Finally it contains a list of all
  * nodes in the loop.
- *
- * @todo We could add a field pointing from a node to the containing loop,
- * this would cost a lot of memory, though.
  */
 struct ir_loop {
-       firm_kind kind;                   /**< A type tag, set to k_ir_loop. */
-       int depth;                        /**< Nesting depth */
-       int n_sons;                       /**< Number of ir_nodes in array "children" */
-       int n_nodes;                      /**< Number of loop_nodes in array "children" */
-       unsigned flags;                   /**< a set of loop_flags_t */
+       firm_kind       kind;             /**< A type tag, set to k_ir_loop. */
+       unsigned        depth;            /**< Nesting depth */
+       unsigned        flags;            /**< a set of loop_flags_t */
        struct ir_loop *outer_loop;       /**< The outer loop */
        loop_element   *children;         /**< Mixed flexible array: Contains sons and loop_nodes */
-       tarval  *loop_iter_start;         /**< counting loop: the start value */
-       tarval  *loop_iter_end;           /**< counting loop: the last value reached */
-       tarval  *loop_iter_increment;     /**< counting loop: the increment */
-       ir_node *loop_iter_variable;      /**< The iteration variable of counting loop.*/
+       ir_tarval      *loop_iter_start;  /**< counting loop: the start value */
+       ir_tarval      *loop_iter_end;    /**< counting loop: the last value reached */
+       ir_tarval      *loop_iter_increment; /**< counting loop: the increment */
+       ir_node        *loop_iter_variable;  /**< The iteration variable of counting loop.*/
 
        void *link;                       /**< link field. */
 #ifdef DEBUG_libfirm
@@ -132,18 +126,12 @@ static inline ir_loop *_get_loop_outer_loop(const ir_loop *loop)
        return loop->outer_loop;
 }
 
-static inline int _get_loop_depth(const ir_loop *loop)
+static inline unsigned _get_loop_depth(const ir_loop *loop)
 {
        assert(_is_ir_loop(loop));
        return loop->depth;
 }
 
-static inline int _get_loop_n_sons(const ir_loop *loop)
-{
-       assert(_is_ir_loop(loop));
-       return loop->n_sons;
-}
-
 /* Uses temporary information to get the loop */
 static inline ir_loop *_get_irn_loop(const ir_node *n)
 {
@@ -155,7 +143,6 @@ static inline ir_loop *_get_irn_loop(const ir_node *n)
 #define get_irg_loop(irg)         _get_irg_loop(irg)
 #define get_loop_outer_loop(loop) _get_loop_outer_loop(loop)
 #define get_loop_depth(loop)      _get_loop_depth(loop)
-#define get_loop_n_sons(loop)     _get_loop_n_sons(loop)
 #define get_irn_loop(n)           _get_irn_loop(n)
 
 #endif