X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbechordal.c;h=0d4c145ae695b5c8827196aa93ae7c51d023d885;hb=56ef5f5b32a94ea0fd229dd50ee3f3b40cdbff8f;hp=4c23dadb051a2c9e8e01295ac25da269a552ac58;hpb=5c898b9d47c6f1b3f5b7b15f893c0e77a417c37c;p=libfirm diff --git a/ir/be/bechordal.c b/ir/be/bechordal.c index 4c23dadb0..0d4c145ae 100644 --- a/ir/be/bechordal.c +++ b/ir/be/bechordal.c @@ -574,7 +574,7 @@ static ir_node *handle_constraints(be_chordal_alloc_env_t *alloc_env, ir_node *i assert(is_Proj(proj)); - if(values_interfere(proj, irn)) { + if(values_interfere(proj, irn) && !pmap_contains(partners, proj)) { assert(n_alloc < n_regs); alloc_nodes[n_alloc] = proj; pmap_insert(partners, proj, NULL); @@ -665,8 +665,8 @@ end: static void constraints(ir_node *bl, void *data) { be_chordal_alloc_env_t *env = data; - firm_dbg_module_t *dbg = firm_dbg_register("firm.be.chordal.constr"); arch_env_t *arch_env = env->chordal_env->birg->main_env->arch_env; + FIRM_DBG_REGISTER(firm_dbg_module_t *dbg, "firm.be.chordal.constr"); /* Start silent in the start block. @@ -925,7 +925,7 @@ void be_ra_chordal_color(be_chordal_env_t *chordal_env) env.in_colors = bitset_alloca(colors_n); env.ignore_regs = bitset_alloca(colors_n); env.pre_colored = pset_new_ptr_default(); - env.constr_dbg = firm_dbg_register("firm.be.chordal.constr"); + FIRM_DBG_REGISTER(env.constr_dbg, "firm.be.chordal.constr"); for(i = 0; i < colors_n; ++i) if(arch_register_type_is(&chordal_env->cls->regs[i], ignore))