- if(arch_irn_consider_in_reg_alloc(arch_env, cls, node)) {
- ir_nodeset_remove(nodeset, node);
- }
+ 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)) {
+ ir_nodeset_remove(nodeset, proj);
+ }
+ }
+ }
+
+ if (arch_irn_consider_in_reg_alloc(cls, node)) {
+ ir_nodeset_remove(nodeset, node);
+ }
+}
+
+static void add_uses(ir_node *node, ir_nodeset_t *nodeset)
+{
+ int i, arity;