- size_t n_live_nodes = ir_nodeset_size(live_nodes);
- size_t values_defined = 0;
- size_t free_regs_needed = 0;
- spill_candidate_t *candidates;
- ir_nodeset_iterator_t iter;
- size_t i, arity;
- int spills_needed;
- size_t cand_idx;
- ir_node *n;
-
- /* mode_T nodes define several values at once. Count them */
- if (get_irn_mode(node) == mode_T) {
- const ir_edge_t *edge;
-
- foreach_out_edge(node, edge) {
- const ir_node *proj = get_edge_src_irn(edge);
-
- if (arch_irn_consider_in_reg_alloc(cls, proj)) {
- ++values_defined;
- }
- }
- } else if (arch_irn_consider_in_reg_alloc(cls, node)) {
- ++values_defined;
- }
+ size_t values_defined = 0;
+ be_foreach_definition(node, cls, value, req,
+ (void)value;
+ assert(req->width >= 1);
+ values_defined += req->width;
+ );