+ foreach_out_edge(irn, edge) {
+ ir_node *proj = get_edge_src_irn(edge);
+ if (!arch_irn_consider_in_reg_alloc(pbqp_co->cls, proj))
+ continue;
+
+ // get related pbqp_node and insert into reverse peo
+ assert(node && "No corresponding PBQP-Node found!");
+
+ // insert proj node into priority queue (descending by their degree in ifg)
+ pqueue_put(queue,proj, be_ifg_degree(pbqp_co->ifg,proj));
+ }
+
+ /* insert proj nodes into reverse perfect elimination order (descending by their degree in ifg) */
+ while(!pqueue_empty(queue)) {
+
+ plist_insert_back(pbqp_co->rpeo, get_node(pbqp_co->pbqp, get_irn_idx(pqueue_pop_front(queue))));
+ }
+ } else {
+ if (!arch_irn_consider_in_reg_alloc(pbqp_co->cls, irn))
+ continue;
+
+ /* get related pbqp_node and insert into reverse peo */
+ assert(node && "No corresponding PBQP-Node found!");
+ plist_insert_back(pbqp_co->rpeo, get_node(pbqp_co->pbqp, get_irn_idx(irn)));
+ }