X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firouts.c;h=52677292e74e948630cc597620089183c5986142;hb=d3a6759399c2870a6975f01c02f8398da6ee4061;hp=7a402c5b314770af55b8a098ad586ea520fd6561;hpb=f05f9c290832de698e3f035b2a48e383d405349b;p=libfirm diff --git a/ir/ana/irouts.c b/ir/ana/irouts.c index 7a402c5b3..52677292e 100644 --- a/ir/ana/irouts.c +++ b/ir/ana/irouts.c @@ -24,13 +24,9 @@ * @date 1.2002 * @version $Id$ */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif -#ifdef HAVE_STRING_H #include -#endif #include "xmalloc.h" #include "irouts.h" @@ -67,7 +63,7 @@ int get_irn_outs_computed(const ir_node *node) } /* returns the number of successors of the node: */ -int get_irn_n_outs(ir_node *node) { +int get_irn_n_outs(const ir_node *node) { assert(node && node->kind == k_ir_node); #ifdef DEBUG_libfirm /* assert(node->out_valid); */ @@ -77,7 +73,7 @@ int get_irn_n_outs(ir_node *node) { } /* Access successor n */ -ir_node *get_irn_out(ir_node *def, int pos) { +ir_node *get_irn_out(const ir_node *def, int pos) { assert(pos >= 0 && pos < get_irn_n_outs(def)); #ifdef DEBUG_libfirm /* assert(def->out_valid); */ @@ -86,7 +82,7 @@ ir_node *get_irn_out(ir_node *def, int pos) { } /* Access successor n */ -ir_node *get_irn_out_ex(ir_node *def, int pos, int *in_pos) { +ir_node *get_irn_out_ex(const ir_node *def, int pos, int *in_pos) { assert(pos >= 0 && pos < get_irn_n_outs(def)); #ifdef DEBUG_libfirm /* assert(def->out_valid); */ @@ -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 @@ -233,7 +229,7 @@ static void irg_out_block_walk2(ir_node *bl, void *env) { int i, n; - if (Block_not_block_visited(bl)) { + if (!Block_block_visited(bl)) { mark_Block_block_visited(bl); if (pre) @@ -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(); }