Lines Matching refs:classes
40 classes through function ira_set_pseudo_classes. */
55 /* Costs for register classes start here. We process only some
56 allocno classes. */
111 /* Info about reg classes whose costs are calculated for a pseudo. */
114 /* Number of the cost classes in the subsequent array. */
116 /* Container of the cost classes. */
117 enum reg_class classes[N_REG_CLASSES];
121 /* Map hard regno index of first class in array CLASSES containing
130 /* Info about cost classes for each pseudo. */
142 /* Returns hash value for cost classes info HV. */
146 return iterative_hash (&hv->classes, sizeof (enum reg_class) * hv->num, 0);
149 /* Compares cost classes info HV1 and HV2. */
154 && memcmp (hv1->classes, hv2->classes,
158 /* Delete cost classes info V from the hash table. */
165 /* Hash table of unique cost classes. */
168 /* Map allocno class -> cost classes for pseudo of given allocno
172 /* Map mode -> cost classes for pseudo of give mode. */
175 /* Cost classes that include all classes in ira_important_classes. */
178 /* Use the array of classes in CLASSES_PTR to fill out the rest of
189 enum reg_class cl = classes_ptr->classes[i];
200 /* Initialize info about the cost classes for each pseudo. */
215 all_cost_classes.classes[i] = ira_important_classes[i];
219 /* Create new cost classes from cost classes FROM and set up members
220 index and hard_regno_index. Return the new classes. The function
232 classes_ptr->classes[i] = from->classes[i];
252 /* Ignore classes that are too small for the mode. */
253 enum reg_class cl = full->classes[i];
266 of an existing class. For example, suppose we have two classes
291 enum reg_class cl2 = narrow.classes[pos];
298 /* If several classes are equivalent, prefer to use the one
303 narrow.classes[narrow.num++] = cl;
312 cost_classes_t classes = setup_cost_classes (&narrow);
313 /* Map equivalent classes to the representative that we chose above. */
319 classes->index[cl] = map[index];
321 *slot = classes;
326 /* Setup cost classes for pseudo REGNO whose allocno class is ACLASS.
335 static struct cost_classes classes;
346 /* We exclude classes from consideration which are subsets of
349 classes.num = 0;
355 /* Exclude non-uniform classes which are subsets of
361 classes.classes[classes.num++] = cl;
363 slot = cost_classes_htab->find_slot (&classes, INSERT);
366 classes_ptr = setup_cost_classes (&classes);
373 /* Restrict the classes to those that are valid for REGNO's mode
374 (which might for example exclude singleton classes if the mode
375 requires two registers). Also restrict the classes to those that
387 /* Setup cost classes for pseudo REGNO with MODE. Usage of MODE can
388 decrease number of cost classes for the pseudo, if hard registers
389 of some important classes cannot hold a value of MODE. So the
390 pseudo cannot get hard register of some important classes and cost
391 calculation for such important classes is only wasting CPU
409 /* Finalize info about the cost classes for each pseudo. */
458 the cost to move between the register classes, and use 2 for
481 classes for the operands in INSN.
531 enum reg_class classes[MAX_RECOG_OPERANDS];
570 classes[i] = NO_REGS;
596 classes[i] = classes[j];
611 else if (classes[j] != NO_REGS)
613 alt_cost += copy_cost (op, mode, classes[j], 1, NULL);
626 if (classes[j] == NO_REGS)
635 alt_cost += copy_cost (ops[j], mode, classes[j], 1, NULL);
648 enum reg_class *cost_classes = cost_classes_ptr->classes;
651 enum reg_class op_class = classes[i];
765 register classes and see if this operand accepts
790 classes[i] = ira_reg_class_subunion[classes[i]][GENERAL_REGS];
801 classes[i] = ira_reg_class_subunion[classes[i]][cl];
835 classes[i]
836 = ira_reg_class_subunion[classes[i]]
860 any register classes are valid. If not, we ignore this
867 if (classes[i] == NO_REGS && ! allows_mem[i])
884 enum reg_class *cost_classes = cost_classes_ptr->classes;
887 enum reg_class op_class = classes[i];
1016 && reg_fits_class_p (op, classes[i],
1023 else if (classes[i] != NO_REGS)
1026 alt_cost += copy_cost (op, mode, classes[i], 1, NULL);
1029 alt_cost += copy_cost (op, mode, classes[i], 0, NULL);
1034 alt_cost += ira_memory_move_cost[mode][classes[i]][1];
1091 reg_class_names[cost_classes_ptr->classes[k]],
1183 index register classes are different.
1309 cost_classes = cost_classes_ptr->classes;
1380 enum reg_class *cost_classes = cost_classes_ptr->classes;
1462 handle any address registers. Finally record the desired classes
1650 reg_class_names[cost_classes_ptr->classes[k]],
1680 enum reg_class *cost_classes = cost_classes_ptr->classes;
1722 cost_classes = cost_classes_ptr->classes;
1760 /* Find costs of register classes and memory for allocnos or pseudos
1762 classes for pseudos. */
1813 classes to guide the selection. */
1879 cost_classes = cost_classes_ptr->classes;
1887 cost_classes = cost_classes_ptr->classes;
2005 The union class arrays give important classes and only
2006 part of it are allocno classes. So translate them into
2007 allocno classes. */
2399 /* Entry function which defines classes for pseudos.