- struct node_stat_walker *env = data;
- const arch_env_t *aenv = env->arch_env;
-
- /* if the node is a normal phi */
- if(is_Phi(irn)) {
- if (get_irn_mode(irn) == mode_M) {
- env->stat->n_mem_phis++;
- } else {
- env->stat->n_phis++;
- }
- } else {
- arch_irn_class_t classify = arch_irn_classify(aenv, irn);
-
- if(classify & arch_irn_class_spill)
- ++env->stat->n_spills;
- if(classify & arch_irn_class_reload)
- ++env->stat->n_reloads;
- if(classify & arch_irn_class_remat)
- ++env->stat->n_remats;
- if(classify & arch_irn_class_copy)
- ++env->stat->n_copies;
- if(classify & arch_irn_class_perm)
- ++env->stat->n_perms;
- }
-}
-
-static void node_stats(be_irg_t *birg, node_stat_t *stat)
-{
- struct node_stat_walker env;
-
- memset(stat, 0, sizeof(*stat));
- env.arch_env = birg->main_env->arch_env;
- env.stat = stat;
- irg_walk_graph(birg->irg, NULL, node_stat_walker, &env);
+ irg_walk_graph(irg, NULL, memory_operand_walker, NULL);