fix
[libfirm] / ir / ana / irouts.c
index 3f9fbb4..5267729 100644 (file)
  * @date     1.2002
  * @version  $Id$
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
-#ifdef HAVE_STRING_H
 #include <string.h>
-#endif
 
 #include "xmalloc.h"
 #include "irouts.h"
@@ -106,7 +102,7 @@ void set_irn_out(ir_node *def, int pos, ir_node *use, int in_pos) {
 }
 
 /* Return the number of control flow successors, ignore keep-alives. */
-int get_Block_n_cfg_outs(ir_node *bl) {
+int get_Block_n_cfg_outs(const ir_node *bl) {
        int i, n_cfg_outs = 0;
        assert(bl && is_Block(bl));
 #ifdef DEBUG_libfirm
@@ -121,7 +117,7 @@ int get_Block_n_cfg_outs(ir_node *bl) {
 }
 
 /* Return the number of control flow successors, honor keep-alives. */
-int get_Block_n_cfg_outs_ka(ir_node *bl) {
+int get_Block_n_cfg_outs_ka(const ir_node *bl) {
        int i, n_cfg_outs = 0;
        assert(bl && is_Block(bl));
 #ifdef DEBUG_libfirm
@@ -145,7 +141,7 @@ int get_Block_n_cfg_outs_ka(ir_node *bl) {
 }
 
 /* Access predecessor n, ignore keep-alives. */
-ir_node *get_Block_cfg_out(ir_node *bl, int pos) {
+ir_node *get_Block_cfg_out(const ir_node *bl, int pos) {
        int i;
        assert(bl && is_Block(bl));
 #ifdef DEBUG_libfirm
@@ -165,7 +161,7 @@ ir_node *get_Block_cfg_out(ir_node *bl, int pos) {
 }
 
 /* Access predecessor n, honor keep-alives. */
-ir_node *get_Block_cfg_out_ka(ir_node *bl, int pos) {
+ir_node *get_Block_cfg_out_ka(const ir_node *bl, int pos) {
        int i, n_outs;
        assert(bl && is_Block(bl));
 #ifdef DEBUG_libfirm
@@ -266,8 +262,7 @@ void irg_out_block_walk(ir_node *node,
 
                for (i = 0, n = get_irn_n_outs(node); i < n; ++i) {
                        ir_node *succ = get_irn_out(node, i);
-                       if (get_irn_visited(succ) < get_irg_visited(current_ir_graph))
-                               irg_out_walk_2(succ, pre, post, env);
+                       irg_out_block_walk2(succ, pre, post, env);
                }
        }
        else {
@@ -316,7 +311,7 @@ static int _count_outs(ir_node *n) {
                }
 
                /* count Def-Use edges for predecessors */
-               if (irn_not_visited(skipped_pred))
+               if (!irn_visited(skipped_pred))
                        res += _count_outs(skipped_pred);
 
                /*count my Def-Use edges */
@@ -340,9 +335,7 @@ static int count_outs(ir_graph *irg) {
           even if they are not visible. */
        for (i = anchor_last - 1; i >= 0; --i) {
                n = get_irg_anchor(irg, i);
-               if (irn_not_visited(n)) {
-                       mark_irn_visited(n);
-
+               if (!irn_visited_else_mark(n)) {
                        n->out = INT_TO_PTR(1);
                        ++res;
                }
@@ -382,7 +375,7 @@ static ir_def_use_edge *_set_out_edges(ir_node *use, ir_def_use_edge *free) {
                ir_node *def = get_irn_n(use, i);
 
                /* Recursion */
-               if (irn_not_visited(def))
+               if (!irn_visited(def))
                        free = _set_out_edges(def, free);
 
                /* Remember this Def-Use edge */
@@ -414,9 +407,7 @@ static ir_def_use_edge *set_out_edges(ir_graph *irg, ir_def_use_edge *free) {
        /* handle anchored nodes */
        for (i = anchor_last - 1; i >= 0; --i) {
                n = get_irg_anchor(irg, i);
-               if (irn_not_visited(n)) {
-                       mark_irn_visited(n);
-
+               if (!irn_visited_else_mark(n)) {
                        n_outs = PTR_TO_INT(n->out);
                        n->out = free;
 #ifdef DEBUG_libfirm
@@ -435,7 +426,7 @@ static ir_def_use_edge *set_out_edges(ir_graph *irg, ir_def_use_edge *free) {
  * position 0, the Start block at position 1.  This is necessary for
  * the out block walker.
  */
-static INLINE void fix_start_proj(ir_graph *irg) {
+static inline void fix_start_proj(ir_graph *irg) {
        ir_node *startbl = get_irg_start_block(irg);
 
        if (get_Block_n_cfg_outs(startbl)) {
@@ -474,7 +465,7 @@ void compute_irg_outs(ir_graph *irg) {
        n_out_edges = count_outs(irg);
 
        /* allocate memory for all out edges. */
-       irg->outs = xcalloc(n_out_edges, sizeof(irg->outs[0]));
+       irg->outs = XMALLOCNZ(ir_def_use_edge, n_out_edges);
 #ifdef DEBUG_libfirm
        irg->n_outs = n_out_edges;
 #endif /* defined DEBUG_libfirm */
@@ -635,7 +626,7 @@ void compute_ip_outs(void) {
        }
 
        global_count = n_out_edges = count_ip_outs();
-       out_edges = xcalloc(n_out_edges, sizeof(out_edges[0]));
+       out_edges    = XMALLOCNZ(ir_node*, n_out_edges);
        set_irp_ip_outedges(out_edges);
        set_ip_outs();
 }