X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fberaextern.c;h=74a2b54a8e3101310760642456b8defe269eae10;hb=a4c23fb5fdcaf600f18b4fa7b7e104fa9b7dc514;hp=36305a6584d48545759a1f4b7904a87402569adb;hpb=296607102219c3895e55a5b662e340b0c749510d;p=libfirm diff --git a/ir/be/beraextern.c b/ir/be/beraextern.c index 36305a658..74a2b54a8 100644 --- a/ir/be/beraextern.c +++ b/ir/be/beraextern.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -78,8 +78,8 @@ alloc ::= node-nr reg-nr . #include #include #include -#include -#include +#include "lc_opts.h" +#include "lc_opts_enum.h" #include "set.h" #include "pset.h" @@ -427,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(skip_Proj(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)); + } } } } @@ -783,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)); } /******************************************************************************