+ /* we need registers for the non-live argument values */
+ arity = get_irn_arity(node);
+ for(i = 0; i < arity; ++i) {
+ ir_node *pred = get_irn_n(node, i);
+ if(arch_irn_consider_in_reg_alloc(arch_env, cls, pred)
+ && !ir_nodeset_contains(live_nodes, pred)) {
+ ++free_regs_needed;
+ }
+ }
+
+ /* we can reuse all reloaded values for the defined values, but we might
+ need even more registers */
+ if(values_defined > free_regs_needed)
+ free_regs_needed = values_defined;
+
+ spills_needed = (n_live_nodes + free_regs_needed) - n_regs;