#include <stdlib.h>
#include "ircons.h"
-#include "ident.h"
#include "debug.h"
#include "irhooks.h"
ir_node *sched_point, *block, *in[2];
ir_node *arg1, *arg2, *res1, *res2;
ir_node *cpyxchg = NULL;
- ident *cls_id;
DEBUG_ONLY(firm_dbg_module_t *mod;)
arch_env = env->chord_env->birg->main_env->arch_env;
assert(n == get_irn_n_edges(irn) && "perm's in and out numbers different");
reg_class = arch_get_irn_register(arch_env, get_irn_n(irn, 0))->reg_class;
- cls_id = new_id_from_str(reg_class->name);
pairs = alloca(n * sizeof(pairs[0]));
if (env->do_stat) {
+ unsigned i;
+
/* determine index in statistics */
for (i = 0; i < env->pstat_n; i++) {
if (strcmp(pstat[i]->cls->name, reg_class->name) == 0) {
real_size = n - get_n_checked_pairs(pairs, n);
}
- hook_be_block_stat_perm(cls_id, reg_class->n_regs, irn, block, n, real_size);
+ hook_be_block_stat_perm(reg_class->name, reg_class->n_regs, irn, block, n, real_size);
/* check for cycles and chains */
while (get_n_checked_pairs(pairs, n) < n) {
- i = 0;
+ i = n_ops = 0;
/* go to the first not-checked pair */
while (pairs[i].checked) i++;
res1 = get_node_for_register(pairs, n, cycle->elems[i], 1);
res2 = get_node_for_register(pairs, n, cycle->elems[i + 1], 1);
-
- n_ops = 0;
/*
If we have a cycle and don't copy: we need to create exchange nodes
NOTE: An exchange node is a perm node with 2 INs and 2 OUTs
/* set the new scheduling point */
sched_point = cpyxchg;
}
+ }
- if (env->do_stat) {
- hook_be_block_stat_permcycle(cls_id, irn, block, cycle->type == PERM_CHAIN, cycle->n_elems, n_ops);
- }
+ if (env->do_stat) {
+ hook_be_block_stat_permcycle(reg_class->name, irn, block, \
+ cycle->type == PERM_CHAIN, cycle->n_elems, n_ops);
}
free((void *) cycle->elems);
}
static void lower_print_perm_stat(lower_env_t *env) {
- int i, j, total_len_chain, total_len_cycle, total_size_perm, total_size_real_perm;
+ int j, total_len_chain, total_len_cycle, total_size_perm, total_size_real_perm;
+ unsigned i;
printf("=== IRG: %s ===\n", get_entity_name(get_irg_entity(env->chord_env->irg)));
for (i = 0; i < env->pstat_n; i++) {