const be_chordal_env_t *chordal_env = co->cenv;
const arch_register_class_t *cls = co->cls;
int irn_col = qnode_get_new_color(qn, irn);
- ir_node *sub_res, *curr;
be_ifg_t *ifg = chordal_env->ifg;
neighbours_iter_t iter;
const arch_register_req_t *req;
*/
if (irn != trigger) {
bitset_t *free_cols = bitset_alloca(cls->n_regs);
- ir_node *curr;
int free_col;
/* Get all possible colors */
be_ifg_foreach_neighbour(ifg, &iter, irn, curr) {
DBG((dbg, LEVEL_3, "\t Confl %+F(%d)\n", curr, qnode_get_new_color(qn, curr)));
if (qnode_get_new_color(qn, curr) == col && curr != trigger) {
- sub_res = qnode_color_irn(qn, curr, irn_col, irn);
+ ir_node *const sub_res = qnode_color_irn(qn, curr, irn_col, irn);
if (sub_res != CHANGE_SAVE) {
be_ifg_neighbours_break(&iter);
return sub_res;
int n_regs = env->co->cls->n_regs;
affinity_node_t *a = ci->aff;
- const ir_node *pos;
neighbours_iter_t it;
int i;
int neigh_ok = 1;
struct list_head changed;
- const ir_node *n;
neighbours_iter_t it;
DBG((env->dbg, LEVEL_3, "\t\t%2{firm:indent}trying color %d(%d) on %+F\n", depth, tgt_col, costs, irn));
be_ifg_t *ifg = env->co->cenv->ifg;
bitset_t *bs = bitset_alloca(n_regs);
- const ir_node *irn;
neighbours_iter_t it;
admissible_colors(env, &ci->inh, bs);
const arch_register_req_t *req;
neighbours_iter_t nodes_it;
- ir_node *neigh;
unsigned len;
res->irn = irn;
be_ifg_t *ifg = sr->co->cenv->ifg;
neighbours_iter_t iter;
ir_node **all = ALLOCAN(ir_node*, be_ifg_degree(ifg, ifn));
- ir_node *curr;
int size = 0;
int i;
int o;
/* color the removed nodes in right order */
for (cs = sr->col_suff; cs; cs = cs->next) {
unsigned free_col;
- ir_node *other;
ir_node *irn = cs->irn;
rbitset_copy(possible_cols, allocatable_cols, n_regs);
int idx = node_map[get_irn_idx(irn)];
affinity_node_t *a = get_affinity_info(co, irn);
- ir_node *adj;
if (arch_register_req_is(req, limited)) {
for (i = 0; i < co->cls->n_regs; ++i) {
be_ifg_foreach_node(ifg, &ifg_iter, node) {
neighbours_iter_t neigh_iter;
- ir_node *neighbour;
be_ifg_foreach_neighbour(ifg, &neigh_iter, node, neighbour) {
/* interference is bidirectional, but it's enough to dump 1
static void int_comp_rec(be_ifg_t *ifg, ir_node *n, bitset_t *seen)
{
neighbours_iter_t neigh_it;
- ir_node *m;
be_ifg_foreach_neighbour(ifg, &neigh_it, n, m) {
if (bitset_is_set(seen, get_irn_idx(m)))
nodes_iter_t nodes_it;
neighbours_iter_t neigh_it;
bitset_t *nodes = bitset_malloc(get_irg_last_idx(irg));
- ir_node *n, *m;
+ ir_node *n;
memset(stat, 0, sizeof(stat[0]));
int be_ifg_degree(const be_ifg_t *ifg, const ir_node *irn);
#define be_ifg_foreach_neighbour(ifg, iter, irn, pos) \
- for(pos = be_ifg_neighbours_begin(ifg, iter, irn); pos != NULL; pos = be_ifg_neighbours_next(iter))
+ for (ir_node *pos = be_ifg_neighbours_begin(ifg, iter, irn); pos; pos = be_ifg_neighbours_next(iter))
#define be_ifg_foreach_node(ifg, iter, pos) \
for(pos = be_ifg_nodes_begin(ifg, iter); pos != NULL; pos = be_ifg_nodes_next(iter))