-void be_ifg_free(be_if_graph_t* graph) {
- be_if_node_t* ifn;
- for (ifn = set_first(graph->nodes); ifn; ifn = set_next(graph->nodes)) {
- free(ifn->neighbourNodes);
- ifn->neighbourNodes = 0;
- }
- free(graph->nodes);
- graph->nodes = 0;
- free(graph->edges);
- graph->edges = 0;
- free(graph);
+ir_node *(be_ifg_nodes_begin)(const void *self, void *iter)
+{
+ const be_ifg_t *ifg = self;
+ return ifg->impl->nodes_begin(self, iter);
+}
+
+ir_node *(be_ifg_nodes_next)(const void *self, void *iter)
+{
+ const be_ifg_t *ifg = self;
+ return ifg->impl->nodes_next(self, iter);
+}
+
+void (be_ifg_nodes_break)(const void *self, void *iter)
+{
+ const be_ifg_t *ifg = self;
+ ifg->impl->nodes_break(self, iter);
+}
+
+int (be_ifg_cliques_begin)(const void *self, void *iter, ir_node **buf)
+{
+ const be_ifg_t *ifg = self;
+ return ifg->impl->cliques_begin(self, iter, buf);