/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Author: Boris Boesler
-**
-** traverse an ir graph
-** - execute the pre function before recursion
-** - execute the post function after recursion
+* All rights reserved.
+*
+* Author: Boris Boesler
+*
+* traverse an ir graph
+* - execute the pre function before recursion
+* - execute the post function after recursion
*/
/* $Id$ */
# include <stdlib.h>
-# include "irnode.h"
+# include "irnode_t.h"
# include "irgraph.h" /* visited flag */
# include "irprog.h"
# include "irgwalk.h"
+# include "typewalk.h"
# include "eset.h"
# include "array.h"
ir_graph * rem = current_ir_graph;
ir_node * pred;
- assert(node);
+ assert(node && node->kind==k_ir_node);
if (get_irn_visited(node) >= visited) return;
set_irn_visited(node, visited);
}
}
-void irg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void * env)
+static void
+irg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void * env)
{
int i;
- assert(node);
+ assert(node && node->kind==k_ir_node);
if (get_irn_visited(node) < get_irg_visited(current_ir_graph)) {
set_irn_visited(node, get_irg_visited(current_ir_graph));
void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
{
- assert(node);
+ assert(node && node->kind==k_ir_node);
if (interprocedural_view) {
eset * irg_set = eset_create();
int visited;
return old_current;
}
-void cg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void * env)
+static void
+cg_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void * env)
{
int i;
ir_graph *rem = NULL;
/***************************************************************************/
/* Walks back from n until it finds a real cf op. */
-ir_node *get_cf_op(ir_node *n) {
+static ir_node *get_cf_op(ir_node *n) {
ir_node *pred;
n = skip_nop(n);
return skip_Proj(n);
}
-void irg_block_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
+static void irg_block_walk_2(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env)
{
int i;
assert(get_irn_opcode(node) == iro_Block);
/********************************************************************/
typedef struct walk_env {
- void *pre;
- void *post;
+ irg_walk_func *pre;
+ irg_walk_func *post;
void *env;
} walk_env;
/* Walk to all constant expressions in this entity. */
-void walk_entity(entity *ent, void *env) {
+static void walk_entity(entity *ent, void *env) {
walk_env *my_env = (walk_env *)env;
if (get_entity_variability(ent) != uninitialized) {
if (is_atomic_entity(ent)) {
/** } **/
/********************************************************************/
-/* Allocates some necessary datastructures. */
-void init_ip_walk ();
-/* Frees some necessary datastructures. */
-void finish_ip_walk();
-
/* Call for i in {0|-1 ... get_irn_arity(n)}.
If n is a conventional node returns the same node as get_irn_n(n, i).
If the predecessors of n are in the callee of the procedure n belongs
/* Initialization routines ******************************************/
-void init_ip_walk () {
+void init_ip_walk (void) {
int i;
for (i = 0; i < get_irp_n_irgs(); i++)
new_callsite_stack(get_irp_irg(i));
}
-void finish_ip_walk() {
+void finish_ip_walk(void) {
int i;
for (i = 0; i < get_irp_n_irgs(); i++)
free_callsite_stack(get_irp_irg(i));