-void be_ifg_add_interference(be_if_graph_t* graph, int source, int target) {
- /* insert edge */
- be_if_edge_t edge;
- edge_init(&edge, source, target);
- set_insert(graph->edges, &edge, sizeof(edge), IF_EDGE_HASH(&edge));
-
- /* insert nodes */
- be_if_node_t node;
- node.nodeNumber = source;
- node.neighbourNodes = pset_new_ptr(IF_NODE_NEIGHBOUR_SLOTS);
- be_if_node_t* sourceNode = set_insert(graph->nodes, &node, sizeof(node), IF_NODE_HASH(&node));
- node.nodeNumber = target;
- node.neighbourNodes = pset_new_ptr(IF_NODE_NEIGHBOUR_SLOTS);
- be_if_node_t* targetNode = set_insert(graph->nodes, &node, sizeof(node), IF_NODE_HASH(&node));
-
- /* insert neighbors into nodes */
- pset_insert_ptr(sourceNode->neighbourNodes, targetNode);
- pset_insert_ptr(targetNode->neighbourNodes, sourceNode);
+int (be_ifg_degree)(const void *self, const ir_node *irn)
+{
+ const be_ifg_t *ifg = self;
+ return ifg->impl->degree(self, irn);