/* build list of interfering neighbours */
len = 0;
be_ifg_foreach_neighbour(env->ifg, nodes_it, irn, neigh) {
- if (!arch_irn_is(neigh, ignore)) {
+ if (!arch_irn_is_ignore(neigh)) {
obstack_ptr_grow(phase_obst(ph), neigh);
++len;
}
if (an != NULL) {
neighb_t *neigh;
co_gs_foreach_neighb(an, neigh) {
- const ir_node *m = neigh->irn;
+ const ir_node *m = neigh->irn;
- /* skip ignore nodes */
- if (arch_irn_is(m, ignore))
+ if (arch_irn_is_ignore(m))
continue;
w += node_contains(c->n, m) ? neigh->costs : 0;
const ir_node *n = neigh->irn;
int i;
- /* skip ignore nodes */
- if (arch_irn_is(n, ignore))
+ if (arch_irn_is_ignore(n))
continue;
/* check if the affinity neighbour interfere */
co_mst_irn_t *n1;
affinity_node_t *an;
- /* skip ignore nodes */
- if (arch_irn_is(n, ignore))
+ if (arch_irn_is_ignore(n))
continue;
n1 = get_co_mst_irn(env, n);
aff_edge_t edge;
/* skip ignore nodes */
- if (arch_irn_is(m, ignore))
+ if (arch_irn_is_ignore(m))
continue;
edge.src = n;
int w = 0;
neighb_t *neigh;
- if (arch_irn_is(irn, ignore))
+ if (arch_irn_is_ignore(irn))
continue;
if (an) {
while (!pqueue_empty(grow)) {
ir_node *irn = pqueue_pop_front(grow);
affinity_node_t *an = get_affinity_info(env->co, irn);
- neighb_t *neigh;
+ neighb_t *neigh;
- if (arch_irn_is(irn, ignore))
+ if (arch_irn_is_ignore(irn))
continue;
assert(i <= ARR_LEN(chunk->n));
int m_idx = get_irn_idx(m);
co_mst_irn_t *n2;
- /* skip ignore nodes */
- if (arch_irn_is(m, ignore))
+ if (arch_irn_is_ignore(m))
continue;
n2 = get_co_mst_irn(env, m);
neigh = node->int_neighs[j];
- /* skip ignore nodes */
- if (arch_irn_is(neigh, ignore))
+ if (arch_irn_is_ignore(neigh))
continue;
nn = get_co_mst_irn(env, neigh);
/**
* Main driver for mst safe coalescing algorithm.
*/
-int co_solve_heuristic_mst(copy_opt_t *co) {
+static int co_solve_heuristic_mst(copy_opt_t *co) {
unsigned n_regs = co->cls->n_regs;
bitset_t *ignore_regs = bitset_alloca(n_regs);
unsigned i, j, k;
/* apply coloring */
foreach_phase_irn(&mst_env.ph, irn) {
- co_mst_irn_t *mirn;
+ co_mst_irn_t *mirn;
const arch_register_t *reg;
- if (arch_irn_is(irn, ignore))
+ if (arch_irn_is_ignore(irn))
continue;
mirn = get_co_mst_irn(&mst_env, irn);
lc_opt_entry_t *co_grp = lc_opt_get_grp(chordal_grp, "co");
lc_opt_entry_t *heur4_grp = lc_opt_get_grp(co_grp, "heur4");
+ static co_algo_info copyheur = {
+ co_solve_heuristic_mst, 0
+ };
+
lc_opt_add_table(heur4_grp, options);
+ be_register_copyopt("heur4", ©heur);
+
FIRM_DBG_REGISTER(dbg, "firm.be.co.heur4");
}
-
BE_REGISTER_MODULE_CONSTRUCTOR(be_init_copyheur4);