X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeifg.c;h=4ab30247844059757354cb883f37ecf1426fce16;hb=c6b7fb5b419ebec2df73da5c64513cfdbf63ba45;hp=4e569abae304afe6e7fc07aa7353ff438b76c076;hpb=2822b67ee0e55acbdc420a9dc9a29d7e2b3f4723;p=libfirm diff --git a/ir/be/beifg.c b/ir/be/beifg.c index 4e569abae..4ab302478 100644 --- a/ir/be/beifg.c +++ b/ir/be/beifg.c @@ -25,6 +25,24 @@ #include "irprintf.h" #include "beifg_t.h" +size_t (be_ifg_nodes_iter_size)(const void *self) +{ + const be_ifg_t *ifg = self; + return ifg->impl->nodes_iter_size; +} + +size_t (be_ifg_neighbours_iter_size)(const void *self) +{ + const be_ifg_t *ifg = self; + return ifg->impl->neighbours_iter_size; +} + +size_t (be_ifg_cliques_iter_size)(const void *self) +{ + const be_ifg_t *ifg = self; + return ifg->impl->cliques_iter_size; +} + void (be_ifg_free)(void *self) { be_ifg_t *ifg = self; @@ -73,6 +91,24 @@ void (be_ifg_nodes_break)(const void *self, void *iter) 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); +} + +int (be_ifg_cliques_next)(const void *self, void *iter) +{ + const be_ifg_t *ifg = self; + return ifg->impl->cliques_next(self, iter); +} + +void (be_ifg_cliques_break)(const void *self, void *iter) +{ + const be_ifg_t *ifg = self; + ifg->impl->cliques_break(self, iter); +} + int (be_ifg_degree)(const void *self, const ir_node *irn) { const be_ifg_t *ifg = self; @@ -85,7 +121,7 @@ int be_ifg_is_simplicial(const be_ifg_t *ifg, const ir_node *irn) int degree = be_ifg_degree(ifg, irn); void *iter = be_ifg_neighbours_iter_alloca(ifg); - ir_node **neighbours = malloc(degree * sizeof(neighbours[0])); + ir_node **neighbours = xmalloc(degree * sizeof(neighbours[0])); ir_node *curr; int i, j; @@ -108,7 +144,7 @@ int be_ifg_is_simplicial(const be_ifg_t *ifg, const ir_node *irn) void be_ifg_check(const be_ifg_t *ifg) { - void *iter1 = be_ifg_neighbours_iter_alloca(ifg); + void *iter1 = be_ifg_nodes_iter_alloca(ifg); void *iter2 = be_ifg_neighbours_iter_alloca(ifg); ir_node *n, *m;