X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbessadestr.c;h=3bcc30082a4e874ab3a56ec52dd24adaaac4d61b;hb=afbbc0b1ccd684c4c24bfd43d0f994123245f39f;hp=d4a52d0b92c64fe1aea5d1612d7218e5c9972bce;hpb=5057c4b3b6c48dc75dee684cd172ce4cfed00da7;p=libfirm diff --git a/ir/be/bessadestr.c b/ir/be/bessadestr.c index d4a52d0b9..3bcc30082 100644 --- a/ir/be/bessadestr.c +++ b/ir/be/bessadestr.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. * @@ -46,7 +46,6 @@ #include "belive_t.h" #include "benode_t.h" #include "besched_t.h" -#include "benodesets.h" #include "bestatevent.h" #include "beirg_t.h" #include "beintlive_t.h" @@ -139,9 +138,9 @@ static void insert_all_perms_walker(ir_node *bl, void *data) { * register class by construction. */ for(phi = get_irn_link(bl); phi; phi = get_irn_link(phi)) { - perm_proj_t templ; - ir_node *arg = get_irn_n(phi, i); - unsigned hash = nodeset_hash(arg); + ir_node *arg = get_irn_n(phi, i); + unsigned hash = hash_irn(arg); + perm_proj_t templ; if (arch_irn_is(chordal_env->birg->main_env->arch_env, arg, ignore)) continue; @@ -168,14 +167,14 @@ 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; perm = be_new_Perm(chordal_env->cls, irg, pred_bl, n_projs, in); be_stat_ev("phi_perm", n_projs); - insert_after = sched_skip(sched_last(pred_bl), 0, sched_skip_cf_predicator, chordal_env->birg->main_env->arch_env); + insert_after = sched_skip(sched_last(pred_bl), 0, sched_skip_cf_predicator, &chordal_env->birg->main_env->arch_env); sched_add_after(insert_after, perm); /* @@ -200,7 +199,7 @@ static void insert_all_perms_walker(ir_node *bl, void *data) { perm_proj_t templ; templ.arg = get_irn_n(phi, i); - pp = set_find(arg_set, &templ, sizeof(templ), nodeset_hash(templ.arg)); + pp = set_find(arg_set, &templ, sizeof(templ), hash_irn(templ.arg)); /* If not found, it was an interfering argument */ if (pp) { @@ -289,7 +288,7 @@ static void set_regs_or_place_dupls_walker(ir_node *bl, void *data) { set_irn_n(phi, i, dupl); set_reg(dupl, phi_reg); - sched_add_after(sched_skip(sched_last(arg_block), 0, sched_skip_cf_predicator, chordal_env->birg->main_env->arch_env), dupl); + sched_add_after(sched_skip(sched_last(arg_block), 0, sched_skip_cf_predicator, &chordal_env->birg->main_env->arch_env), dupl); pin_irn(dupl, phi_block); be_liveness_introduce(lv, dupl); be_liveness_update(lv, arg); @@ -390,7 +389,6 @@ void be_ssa_destruction(be_chordal_env_t *chordal_env) { FIRM_DBG_REGISTER(dbg, "ir.be.ssadestr"); be_liveness_invalidate(lv); - be_liveness_assure_sets(lv); /* create a map for fast lookup of perms: block --> perm */ irg_walk_graph(irg, clear_link, collect_phis_walker, chordal_env);