Lines Matching refs:classes
55 * In this system, there are register classes each containing various
154 * This can simplify code for setting up multiple register classes
198 * This can simplify code for setting up multiple register classes
221 regs->classes = reralloc(regs->regs, regs->classes, struct ra_class *,
229 regs->classes[class->index] = class;
257 return regs->classes[class];
286 * Must be called after all conflicts and register classes have been
297 regs->classes[b]->q = ralloc_array(regs, unsigned int, regs->class_count);
303 regs->classes[b]->q[c] = q_values[b][c];
312 struct ra_class *class_b = regs->classes[b];
313 struct ra_class *class_c = regs->classes[c];
317 /* If both classes are single registers, then they only
333 BITSET_FOREACH_SET(rc, regs->classes[c]->regs, regs->count) {
352 /* If you're doing contiguous classes, you have to be all in
360 BITSET_FOREACH_SET(rc, regs->classes[c]->regs, regs->count) {
366 if (reg_belongs_to_class(rb, regs->classes[b]))
371 regs->classes[b]->q[c] = max_conflicts;
383 all_contig &= regs->classes[c]->contig_len != 0;
386 * be a mistake to look at conflicts when doing contiguous classes!), so
402 bool is_contig = regs->classes[0]->contig_len != 0;
415 struct ra_class *class = regs->classes[c];
449 assert(regs->classes == NULL);
450 regs->classes = ralloc_array(regs->regs, struct ra_class *, class_count);
455 regs->classes[c] = class;
466 class->q = ralloc_array(regs->classes[c], unsigned int, class_count);
518 g->nodes[n1].q_total += g->regs->classes[n1_class]->q[n2_class];
531 g->nodes[n1].q_total -= g->regs->classes[n1_class]->q[n2_class];
620 return g->regs->classes[g->nodes[n].class];
661 if (g->nodes[n].tmp.q_total < g->regs->classes[n_class]->p) {
692 assert(g->nodes[n2].tmp.q_total >= g->regs->classes[n2_class]->q[n_class]);
693 g->nodes[n2].tmp.q_total -= g->regs->classes[n2_class]->q[n_class];
840 ra_class_allocations_conflict(g->regs->classes[g->nodes[n].class], r,
841 g->regs->classes[g->nodes[n2].class], g->nodes[n2].reg)) {
858 struct ra_class *c = g->regs->classes[g->nodes[n].class];
868 struct ra_class *n2c = g->regs->classes[n2->class];
911 struct ra_class *c = g->regs->classes[g->nodes[n].class];
940 if (g->regs->classes[conflicting->class]->contig_len) {
946 g->regs->classes[conflicting->class]->contig_len - 1);
1022 * but takes classes into account.
1027 benefit += ((float)g->regs->classes[n_class]->q[n2_class] /
1028 g->regs->classes[n_class]->p);