X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fberaextern.c;h=9caded90dc06715cba8a6f6b9cf8316a814ebaf8;hb=cefac6c80d0c716a9f2fed6d5a19b807ab045164;hp=c6530c52ccf60a518ec5cd048be0b1604c678001;hpb=39f3a8dbd0f00f90b7b12a849d1bf7b9c1329479;p=libfirm diff --git a/ir/be/beraextern.c b/ir/be/beraextern.c index c6530c52c..9caded90d 100644 --- a/ir/be/beraextern.c +++ b/ir/be/beraextern.c @@ -97,7 +97,6 @@ alloc ::= node-nr reg-nr . #include "phiclass.h" #include "bemodule.h" -#include "beraextern.h" #include "beabi.h" #include "bearch_t.h" #include "benode_t.h" @@ -428,13 +427,18 @@ static void dump_affinities_walker(ir_node *irn, void *env) { /* should_be_equal constraints are affinites */ for (pos = 0, max = get_irn_arity(irn); posaenv, irn, pos); - if (arch_register_req_is(req, should_be_same)) { - ir_node *other = get_irn_n(irn, req->other_same); - if(arch_irn_is(raenv->aenv, other, ignore)) { - vi2 = be_get_var_info(other); + const int* i; + for (i = req->other_same; i != ENDOF(req->other_same); ++i) { + ir_node *other; + + if (*i == -1) break; - fprintf(raenv->f, "(%d, %d, %d)\n", vi1->var_nr, vi2->var_nr, get_affinity_weight(irn)); + other = get_irn_n(skip_Proj(irn), *i); + if(arch_irn_is(raenv->aenv, other, ignore)) { + vi2 = be_get_var_info(other); + fprintf(raenv->f, "(%d, %d, %d)\n", vi1->var_nr, vi2->var_nr, get_affinity_weight(irn)); + } } } } @@ -784,7 +788,7 @@ static void be_ra_extern_main(be_irg_t *birg) { /* Clean up */ free_ssa_destr_simple(raenv.vars); - be_invalidate_liveness(birg); + be_liveness_invalidate(be_get_birg_liveness(birg)); } /****************************************************************************** @@ -830,4 +834,4 @@ void be_init_raextern(void) { } BE_REGISTER_MODULE_CONSTRUCTOR(be_init_raextern); -#endif +#endif /* NOT_PORTED */