X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeprefalloc.c;h=c5ebeb5110430713c0c0cbc9221f4bb705785f11;hb=dde98a7e86d0a0afe256f8bd56e287206d9d542f;hp=46882013e35a5d3299f47ce83c3fea1bfff8799a;hpb=aea17ae12e3517e3992eef3da7e44c4ce36eefe1;p=libfirm diff --git a/ir/be/beprefalloc.c b/ir/be/beprefalloc.c index 46882013e..c5ebeb511 100644 --- a/ir/be/beprefalloc.c +++ b/ir/be/beprefalloc.c @@ -435,8 +435,10 @@ static void create_congruence_class(ir_node *block, void *data) ); be_liveness_transfer(cls, node, &live_nodes); } - if (!last_phi) + if (!last_phi) { + ir_nodeset_destroy(&live_nodes); return; + } /* check phi congruence classes */ sched_foreach_reverse_from(last_phi, phi) { @@ -504,6 +506,7 @@ static void create_congruence_class(ir_node *block, void *data) } } } + ir_nodeset_destroy(&live_nodes); } static void set_congruence_prefs(ir_node *node, void *data) @@ -1855,6 +1858,11 @@ static void determine_block_order(void) n_block_order = n_blocks; } +static void free_block_order(void) +{ + xfree(block_order); +} + /** * Run the register allocator for the current register class. */ @@ -1962,6 +1970,8 @@ static void be_pref_alloc(ir_graph *new_irg) stat_ev_ctx_pop("regcls"); } + free_block_order(); + be_timer_push(T_RA_SPILL_APPLY); be_abi_fix_stack_nodes(irg); be_timer_pop(T_RA_SPILL_APPLY);