#include "irprog.h"
#include "irgwalk.h"
#include "typewalk.h"
-#include "firmstat.h"
+#include "irhooks.h"
#include "ircgcons.h"
#include "eset.h"
void irg_walk_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env) {
ir_graph * rem = current_ir_graph;
- stat_irg_walk(irg, (void *)pre, (void *)post);
+ hook_irg_walk(irg, (generic_func *)pre, (generic_func *)post);
current_ir_graph = irg;
irg_walk(get_irg_end(irg), pre, post, env);
current_ir_graph = rem;
{
int i;
- if(get_Block_block_visited(node) < get_irg_block_visited(current_ir_graph)) {
- set_Block_block_visited(node, get_irg_block_visited(current_ir_graph));
+ if (Block_not_block_visited(node)) {
+ mark_Block_block_visited(node);
if(pre) pre(node, env);
ir_node *block, *pred;
int i;
- stat_irg_block_walk(current_ir_graph, node, (void *)pre, (void *)post);
+ hook_irg_block_walk(current_ir_graph, node, (generic_func *)pre, (generic_func *)post);
assert(node);
assert(!get_interprocedural_view()); /* interprocedural_view not implemented, because it
for (i = 0; i < arity; i++) {
pred = get_irn_n(node, i);
if (get_irn_op(pred) == op_Phi) {
- ir_node *block = get_nodes_block(pred);
+ ir_node *block = get_nodes_block(pred);
- if (! is_Bad(block))
+ if (! is_Bad(block))
irg_block_walk_2(block, pre, post, env);
}
}
/* Walk constant array bounds. */
for (i = 0; i < get_irp_n_types(); i++) {
type *tp = get_irp_type(i);
- if (is_array_type(tp)) {
+ if (is_Array_type(tp)) {
for (j = 0; j < get_array_n_dimensions(tp); j++) {
ir_node *n = get_array_lower_bound(tp, j);
if (n) irg_walk(n, pre, post, env);