*** empty log message ***
[libfirm] / ir / be / bessadestr.c
index 46fad18..de7cbcf 100644 (file)
 #include "beutil.h"
 #include "bechordal_t.h"
 #include "bearch.h"
+#include "belive_t.h"
 #include "benode_t.h"
 #include "besched_t.h"
 
 static firm_dbg_module_t *dbg = NULL;
 #define DEBUG_LVL SET_LEVEL_0
-
+#undef DUMP_GRAPHS
 
 #define get_chordal_arch(ce) ((ce)->session_env->main_env->arch_env)
 #define get_reg(irn) arch_get_irn_register(get_chordal_arch(chordal_env), irn, 0)
@@ -96,7 +97,7 @@ static void insert_all_perms_walker(ir_node *bl, void *data)
       ir_node *pred_bl = get_Block_cfgpred_block(bl, i);
       ir_node *phi, *perm, *insert_after;
       ir_node **in;
-      int j, n_projs = 0;
+      int n_projs = 0;
       pmap_entry *ent;
       pmap *arg_map = pmap_create();
 
@@ -110,7 +111,7 @@ static void insert_all_perms_walker(ir_node *bl, void *data)
         ir_node *arg = get_irn_n(phi, i);
         ir_node *proj = pmap_get(arg_map, arg);
 
-               if(!proj && !nodes_interfere(chordal_env, phi, arg)) {
+               if(!proj && !is_live_in(bl, arg)) {
                  proj = new_r_Proj(irg, pred_bl, dummy, get_irn_mode(arg), n_projs++);
                  pmap_insert(arg_map, arg, proj);
                }
@@ -277,10 +278,13 @@ void be_ssa_destruction(be_chordal_env_t *chordal_env) {
 
        build_phi_rings(chordal_env);
        insert_all_perms(chordal_env);
+#ifdef DUMP_GRAPHS
        dump_ir_block_graph_sched(irg, "-ssa_destr_perms_placed");
-
+#endif
        set_regs_or_place_dupls(chordal_env);
+#ifdef DUMP_GRAPHS
        dump_ir_block_graph_sched(irg, "-ssa_destr_regs_set");
+#endif
 
        pmap_destroy(perm_map);
 }