+ env.do_stat = do_stat;
+ FIRM_DBG_REGISTER(env.dbg_module, "firm.be.lower");
+
+ /* if we want statistics: allocate memory for the data and initialize with 0 */
+ if (do_stat) {
+ const arch_isa_t *isa = chord_env->birg->main_env->arch_env->isa;
+ int i, n = arch_isa_get_n_reg_class(isa);
+
+ env.pstat = alloca(n * sizeof(env.pstat[0]));
+ env.pstat_n = n;
+
+ for (i = 0; i < n; i++) {
+ const arch_register_class_t *cls = arch_isa_get_reg_class(isa, i);
+ int n_regs = cls->n_regs;
+
+ env.pstat[i] = alloca(sizeof(*(env.pstat[0])));
+ memset(env.pstat[i], 0, sizeof(*(env.pstat[0])));
+
+ env.pstat[i]->perm_size_ar = alloca(n_regs * sizeof(env.pstat[i]->perm_size_ar[0]));
+ env.pstat[i]->real_perm_size_ar = alloca(n_regs * sizeof(env.pstat[i]->real_perm_size_ar[0]));
+ env.pstat[i]->chain_len_ar = alloca(n_regs * sizeof(env.pstat[i]->chain_len_ar[0]));
+ env.pstat[i]->cycle_len_ar = alloca(n_regs * sizeof(env.pstat[i]->cycle_len_ar[0]));
+
+ memset(env.pstat[i]->perm_size_ar, 0, n_regs * sizeof(env.pstat[i]->perm_size_ar[0]));
+ memset(env.pstat[i]->real_perm_size_ar, 0, n_regs * sizeof(env.pstat[i]->real_perm_size_ar[0]));
+ memset(env.pstat[i]->chain_len_ar, 0, n_regs * sizeof(env.pstat[i]->chain_len_ar[0]));
+ memset(env.pstat[i]->cycle_len_ar, 0, n_regs * sizeof(env.pstat[i]->cycle_len_ar[0]));
+
+ env.pstat[i]->cls = cls;
+ }
+ }