X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fbe%2Fbecopyheur.c;h=519f521bde42af87a812b9b61cc70cebb344a7b4;hb=808762e7935fe025e83507254156d8c7d1fc8b46;hp=165db4ae62e71fd34e14401b7abd777d7623c628;hpb=41dc42afc8d00e0f364711ed0c919e4e29cb20e4;p=libfirm diff --git a/ir/be/becopyheur.c b/ir/be/becopyheur.c index 165db4ae6..519f521bd 100644 --- a/ir/be/becopyheur.c +++ b/ir/be/becopyheur.c @@ -22,7 +22,6 @@ * @brief First simple copy minimization heuristics. * @author Daniel Grund * @date 12.04.2005 - * @version $Id$ * * Heuristic for minimizing copies using a queue which holds 'qnodes' not yet * examined. A qnode has a 'target color', nodes out of the opt unit and @@ -127,7 +126,7 @@ static inline void qnode_add_conflict(const qnode_t *qn, const ir_node *n1, cons c.n1 = n2; c.n2 = n1; } - set_insert(qn->conflicts, &c, sizeof(c), HASH_CONFLICT(c)); + (void)set_insert(conflict_t, qn->conflicts, &c, sizeof(c), HASH_CONFLICT(c)); } /** @@ -147,7 +146,7 @@ static inline int qnode_are_conflicting(const qnode_t *qn, const ir_node *n1, co c.n1 = n2; c.n2 = n1; } - return set_find(qn->conflicts, &c, sizeof(c), HASH_CONFLICT(c)) != 0; + return set_find(conflict_t, qn->conflicts, &c, sizeof(c), HASH_CONFLICT(c)) != 0; } static int set_cmp_node_stat_t(const void *x, const void *y, size_t size) @@ -163,7 +162,7 @@ static inline const node_stat_t *qnode_find_node(const qnode_t *qn, ir_node *irn { node_stat_t find; find.irn = irn; - return (const node_stat_t*)set_find(qn->changed_nodes, &find, sizeof(find), hash_irn(irn)); + return set_find(node_stat_t, qn->changed_nodes, &find, sizeof(find), hash_irn(irn)); } /** @@ -176,7 +175,7 @@ static inline node_stat_t *qnode_find_or_insert_node(const qnode_t *qn, ir_node find.irn = irn; find.new_color = NO_COLOR; find.pinned_local = 0; - return (node_stat_t*)set_insert(qn->changed_nodes, &find, sizeof(find), hash_irn(irn)); + return set_insert(node_stat_t, qn->changed_nodes, &find, sizeof(find), hash_irn(irn)); } /** @@ -400,7 +399,6 @@ static inline void qnode_max_ind_set(qnode_t *qn, const unit_t *ou) ir_node **safe, **unsafe; int i, o, safe_count, safe_costs, unsafe_count, *unsafe_costs; bitset_t *curr, *best; - size_t pos; int next, curr_weight, best_weight = 0; /* assign the nodes into two groups. @@ -551,13 +549,12 @@ static inline void ou_insert_qnode(unit_t *ou, qnode_t *qn) */ static void ou_optimize(unit_t *ou) { - qnode_t *curr = NULL; - qnode_t *tmp; - const arch_register_req_t *req; - bitset_t const* allocatable_regs; - unsigned n_regs; - unsigned idx; - int i; + qnode_t *curr = NULL; + const arch_register_req_t *req; + bitset_t const* allocatable_regs; + unsigned n_regs; + unsigned idx; + int i; DBG((dbg, LEVEL_1, "\tOptimizing unit:\n")); for (i=0; inode_count; ++i) @@ -609,7 +606,6 @@ static void ou_optimize(unit_t *ou) /* apply the best found qnode */ if (curr->mis_size >= 2) { - node_stat_t *ns; int root_col = qnode_get_new_color(curr, ou->nodes[0]); DBG((dbg, LEVEL_1, "\t Best color: %d Costs: %d << %d << %d\n", curr->color, ou->min_nodes_costs, ou->all_nodes_costs - curr->mis_costs, ou->all_nodes_costs)); /* globally pin root and all args which have the same color */ @@ -622,12 +618,11 @@ static void ou_optimize(unit_t *ou) } /* set color of all changed nodes */ - for (ns = (node_stat_t*)set_first(curr->changed_nodes); ns != NULL; - ns = (node_stat_t*)set_next(curr->changed_nodes)) { + foreach_set(curr->changed_nodes, node_stat_t, ns) { /* NO_COLOR is possible, if we had an undo */ if (ns->new_color != NO_COLOR) { DBG((dbg, LEVEL_1, "\t color(%+F) := %d\n", ns->irn, ns->new_color)); - set_irn_col(ou->co, ns->irn, ns->new_color); + set_irn_col(ou->co->cls, ns->irn, ns->new_color); } } } @@ -644,8 +639,6 @@ static void ou_optimize(unit_t *ou) */ int co_solve_heuristic(copy_opt_t *co) { - unit_t *curr; - ASSERT_OU_AVAIL(co); pinned_global = pset_new_ptr(SLOTS_PINNED_GLOBAL);