+ instance_t* inst = graph_env;
+ ir_node** sched = get_irn_link(block);
+ ir_node* first = NULL;
+ int i;
+
+ /* turn into a list, so we can easily remove nodes.
+ The link field is used anyway. */
+ for (i = ARR_LEN(sched) - 1; i >= 0; --i) {
+ ir_node* irn = sched[i];
+ if (!arch_irn_class_is(irn, branch)) {
+ set_irn_link(irn, first);
+ first = irn;
+ }
+ }
+ /* note: we can free sched here, there should be no attempt to schedule
+ a block twice */
+ DEL_ARR_F(sched);
+ set_irn_link(block, sched);
+ inst->curr_list = first;
+ return inst;