diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 456555538b260ed6d0aac2b828ee42f42a84d9a3..eec4f010782854b8657276276f4848f0df5dc104 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,11 @@ +2009-11-03 Sebastian Pop <sebastian.pop@amd.com> + + * graphite-clast-to-gimple.c (gloog): Free if_region, + if_region->true_region, and if_region->region. + * sese.c (if_region_set_false_region): Free if_region->false_region. + (create_if_region_on_edge): Do not use GGC_NEW. + (move_sese_in_condition): Remove useless initialization. + 2009-11-03 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (lst_perfect_nestify): Pass 3 parameters diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c index 85941908663dc75e296919145258b9a35f87fdcb..2df86fa2ac9e0d448f25b244bb60e1c6cfb2f408 100644 --- a/gcc/graphite-clast-to-gimple.c +++ b/gcc/graphite-clast-to-gimple.c @@ -1201,6 +1201,10 @@ gloog (scop_p scop, htab_t bb_pbb_mapping) recompute_all_dominators (); graphite_verify (); + free (if_region->true_region); + free (if_region->region); + free (if_region); + htab_delete (rename_map); htab_delete (newivs_index); VEC_free (tree, heap, newivs); diff --git a/gcc/sese.c b/gcc/sese.c index 76c92bd08b78e2e501ea7459c672ee54e688dfae..bf315f97a262a46d6b5bca427c2aee1eb417c649 100644 --- a/gcc/sese.c +++ b/gcc/sese.c @@ -1384,6 +1384,9 @@ if_region_set_false_region (ifsese if_region, sese region) recompute_all_dominators (); SESE_EXIT (region) = false_edge; + + if (if_region->false_region) + free (if_region->false_region); if_region->false_region = region; if (slot) @@ -1409,10 +1412,10 @@ create_if_region_on_edge (edge entry, tree condition) { edge e; edge_iterator ei; - sese sese_region = GGC_NEW (struct sese_s); - sese true_region = GGC_NEW (struct sese_s); - sese false_region = GGC_NEW (struct sese_s); - ifsese if_region = GGC_NEW (struct ifsese_s); + sese sese_region = XNEW (struct sese_s); + sese true_region = XNEW (struct sese_s); + sese false_region = XNEW (struct sese_s); + ifsese if_region = XNEW (struct ifsese_s); edge exit = create_empty_if_region_on_edge (entry, condition); if_region->region = sese_region; @@ -1449,7 +1452,7 @@ ifsese move_sese_in_condition (sese region) { basic_block pred_block = split_edge (SESE_ENTRY (region)); - ifsese if_region = NULL; + ifsese if_region; SESE_ENTRY (region) = single_succ_edge (pred_block); if_region = create_if_region_on_edge (single_pred_edge (pred_block), integer_one_node);