aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/tree-ssa-alias.c4
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1a12991..fbb50d0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,19 @@
2008-09-15 Jakub Jelinek <jakub@redhat.com>
+ * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
+ in every call starting with the second one, instead of only when
+ alias_bitmap_obstack.elements != NULL.
+
+ * tree-predcom.c (filter_suitable_components): Free all refs in
+ act->refs vector before calling release_component.
+ (add_ref_to_chain): Free ref if not adding it to chain->refs.
+
+ * tree-data-ref.c (free_subscripts): Free all subscript objects.
+
+ * tree-loop-linear.c (linear_transform_loops): Initialize
+ lambda_obstack only after calling perfect_loop_nest_depth.
+ Goto free_and_continue instead of just continue for later failures.
+
PR middle-end/37479
* doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 42a5431..adea68e 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -2067,6 +2067,7 @@ init_alias_info (void)
struct alias_info *ai;
referenced_var_iterator rvi;
tree var;
+ static bool alias_bitmap_obstack_initialized;
ai = XCNEW (struct alias_info);
ai->ssa_names_visited = sbitmap_alloc (num_ssa_names);
@@ -2094,9 +2095,10 @@ init_alias_info (void)
/* Next time, we will need to reset alias information. */
cfun->gimple_df->aliases_computed_p = true;
- if (alias_bitmap_obstack.elements != NULL)
+ if (alias_bitmap_obstack_initialized)
bitmap_obstack_release (&alias_bitmap_obstack);
bitmap_obstack_initialize (&alias_bitmap_obstack);
+ alias_bitmap_obstack_initialized = true;
return ai;
}