/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irouts.c --- Compute out edges for ir nodes (also called def-use
-** edges).
-**
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irouts.c --- Compute out edges for ir nodes (also called def-use
+* edges).
+*
*/
/* $Id$ */
/**********************************************************************/
/* returns the number of successors of the node: */
-inline int get_irn_n_outs (ir_node *node) {
+INLINE int get_irn_n_outs (ir_node *node) {
return (int)(node->out[0]);
}
/* Access successor n */
-inline ir_node *get_irn_out (ir_node *node, int pos) {
+INLINE ir_node *get_irn_out (ir_node *node, int pos) {
assert(node);
assert(pos >= 0 && pos < get_irn_n_outs(node));
return node->out[pos+1];
}
-inline void set_irn_out (ir_node *node, int pos, ir_node *out) {
+INLINE void set_irn_out (ir_node *node, int pos, ir_node *out) {
assert(node && out);
assert(pos >= 0 && pos < get_irn_n_outs(node));
node->out[pos+1] = out;
}
-inline int get_Block_n_cfg_outs (ir_node *bl) {
+INLINE int get_Block_n_cfg_outs (ir_node *bl) {
int i, n_cfg_outs = 0;
assert(bl && (get_irn_op(bl) == op_Block));
for (i = 0; i < (int)bl->out[0]; i++)
}
-inline ir_node *get_Block_cfg_out (ir_node *bl, int pos) {
+INLINE ir_node *get_Block_cfg_out (ir_node *bl, int pos) {
int i, out_pos = 0;
assert(bl && (get_irn_op(bl) == op_Block));
for (i = 0; i < (int)bl->out[0]; i++)
return NULL;
}
-void irg_out_walk_2(ir_node *node, void (pre)(ir_node*, void*),
- void (post)(ir_node*, void*), void *env) {
+void irg_out_walk_2(ir_node *node, irg_walk_func *pre,
+ irg_walk_func *post, void *env) {
int i;
ir_node *succ;
- //printf("++ in walker (%d outs) ", get_irn_n_outs(node)); DDMSG2(node);
-
assert(node);
assert(get_irn_visited(node) < get_irg_visited(current_ir_graph));
if (post) post(node, env);
- //printf("++ done walking "); DDMSG2(node);
return;
}
void irg_out_walk(ir_node *node,
- void (pre)(ir_node*, void*), void (post)(ir_node*, void*),
- void *env) {
+ irg_walk_func *pre, irg_walk_func *post,
+ void *env) {
assert(node);
if (get_irg_outs_state(current_ir_graph) != no_outs) {
inc_irg_visited (current_ir_graph);
}
void irg_out_block_walk2(ir_node *bl,
- void (pre)(ir_node*, void*), void (post)(ir_node*, void*),
+ irg_walk_func *pre, irg_walk_func *post,
void *env) {
int i;
/* Walks only over Block nodes in the graph. Has it's own visited
flag, so that it can be interleaved with the other walker. */
void irg_out_block_walk(ir_node *node,
- void (pre)(ir_node*, void*), void (post)(ir_node*, void*),
+ irg_walk_func *pre, irg_walk_func *post,
void *env) {
assert((get_irn_op(node) == op_Block) || (get_irn_mode(node) == mode_X));
/* Returns the amount of out edges for not yet visited successors. */
-int count_outs(ir_node *n) {
+static int count_outs(ir_node *n) {
int start, i, res;
ir_node *succ;
return res;
}
-ir_node **set_out_edges(ir_node *n, ir_node **free) {
+static ir_node **set_out_edges(ir_node *n, ir_node **free) {
int n_outs, start, i;
ir_node *succ;
return free;
}
-inline void fix_start_proj(ir_graph *irg) {
+static INLINE void fix_start_proj(ir_graph *irg) {
ir_node *proj = NULL, *startbl;
int i;
if (get_Block_n_cfg_outs(get_irg_start_block(irg))) {