Do not mark the transformed as visited. It makes no sense at all.
[libfirm] / ir / be / bessadestr.c
index 2f7df21..3bcc300 100644 (file)
@@ -52,7 +52,7 @@
 
 DEBUG_ONLY(static firm_dbg_module_t *dbg = NULL;)
 
-#define get_chordal_arch(ce) (&(ce)->birg->main_env->arch_env)
+#define get_chordal_arch(ce) ((ce)->birg->main_env->arch_env)
 #define get_reg(irn) arch_get_irn_register(get_chordal_arch(chordal_env), irn)
 #define set_reg(irn, reg) arch_set_irn_register(get_chordal_arch(chordal_env), irn, reg)
 
@@ -142,7 +142,7 @@ static void insert_all_perms_walker(ir_node *bl, void *data) {
                        unsigned     hash = hash_irn(arg);
                        perm_proj_t  templ;
 
-                       if (arch_irn_is(&chordal_env->birg->main_env->arch_env, arg, ignore))
+                       if (arch_irn_is(chordal_env->birg->main_env->arch_env, arg, ignore))
                                continue;
 
                        templ.arg  = arg;
@@ -167,7 +167,7 @@ static void insert_all_perms_walker(ir_node *bl, void *data) {
                         * Create a new Perm with the arguments just collected
                         * above in the arg_set and insert it into the schedule.
                         */
-                       in = xmalloc(n_projs * sizeof(in[0]));
+                       in = XMALLOCN(ir_node*, n_projs);
                        for(pp = set_first(arg_set); pp; pp = set_next(arg_set))
                                in[pp->pos] = pp->arg;
 
@@ -256,7 +256,7 @@ static void set_regs_or_place_dupls_walker(ir_node *bl, void *data) {
                        arg_block = get_Block_cfgpred_block(phi_block, i);
                        arg_reg   = get_reg(arg);
 
-                       if (arch_irn_is(&chordal_env->birg->main_env->arch_env, arg, ignore))
+                       if (arch_irn_is(chordal_env->birg->main_env->arch_env, arg, ignore))
                                continue;
 
                        assert(arg_reg && "Register must be set while placing perms");
@@ -432,7 +432,7 @@ static void ssa_destruction_check_walker(ir_node *bl, void *data) {
                for (i = 0, max = get_irn_arity(phi); i < max; ++i) {
                        ir_node *arg = get_irn_n(phi, i);
 
-                       if (arch_irn_is(&chordal_env->birg->main_env->arch_env, arg, ignore))
+                       if (arch_irn_is(chordal_env->birg->main_env->arch_env, arg, ignore))
                                continue;
 
                        arg_reg = get_reg(arg);