static int ifg_std_connected(const void *self, const ir_node *a, const ir_node *b)
{
- return values_interfere(a, b);
+ const ifg_std_t *ifg = self;
+ return values_interfere(ifg->env->lv, a, b);
}
typedef struct _nodes_iter_t {
it->env = ifg->env;
irg_block_walk_graph(ifg->env->irg, nodes_walker, NULL, iter);
+ obstack_ptr_grow(&it->obst, NULL);
it->nodes = obstack_finish(&it->obst);
}
border_t *b;
int has_started = 0;
- if(!is_live_in(block, it->irn) && block != get_nodes_block(it->irn))
+ if(!be_is_live_in(it->env->lv, block, it->irn) && block != get_nodes_block(it->irn))
return;
foreach_border_head(head, b) {
int output_on_shrink = 0;
struct list_head *head = get_block_border_head(it->cenv, it->blocks[it->blk]);
- /* on entry to a new block set the first border ...
+ /* on entry to a new block set the first border ... */
if (!it->bor)
it->bor = head->prev;
{
const ifg_std_t *ifg = self;
cliques_iter_t *it = iter;
- ir_node *start_bl = get_irg_start_block(it->cenv->irg);
+ ir_node *start_bl = get_irg_start_block(ifg->env->irg);
obstack_init(&it->ob);
dom_tree_walk(start_bl, get_blocks_dom_order, NULL, it);
be_ifg_t *be_ifg_std_new(const be_chordal_env_t *env)
{
- ifg_std_t *ifg = malloc(sizeof(*ifg));
+ ifg_std_t *ifg = xmalloc(sizeof(*ifg));
ifg->impl = &ifg_std_impl;
ifg->env = env;