aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-loop-linear.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2008-09-15 23:55:05 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-09-15 23:55:05 +0200
commita0044be570e23969f742d62d734ff3dc570af48b (patch)
tree3a80fb5ba141a335e30a28fc364cb58ee7216972 /gcc/tree-loop-linear.c
parent8f57ac5a83dd534f7a2be8489b7dd04f6c68e8cf (diff)
downloadgcc-a0044be570e23969f742d62d734ff3dc570af48b.zip
gcc-a0044be570e23969f742d62d734ff3dc570af48b.tar.gz
gcc-a0044be570e23969f742d62d734ff3dc570af48b.tar.bz2
tree-predcom.c (filter_suitable_components): Free all refs in act->refs vector before calling release_component.
* 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. From-SVN: r140376
Diffstat (limited to 'gcc/tree-loop-linear.c')
-rw-r--r--gcc/tree-loop-linear.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/tree-loop-linear.c b/gcc/tree-loop-linear.c
index 7e5f298..a97433b 100644
--- a/gcc/tree-loop-linear.c
+++ b/gcc/tree-loop-linear.c
@@ -333,12 +333,12 @@ linear_transform_loops (void)
lambda_loopnest before, after;
lambda_trans_matrix trans;
struct obstack lambda_obstack;
- gcc_obstack_init (&lambda_obstack);
depth = perfect_loop_nest_depth (loop_nest);
if (depth == 0)
continue;
+ gcc_obstack_init (&lambda_obstack);
VEC_truncate (tree, oldivs, 0);
VEC_truncate (tree, invariants, 0);
VEC_truncate (tree, lambda_parameters, 0);
@@ -347,12 +347,12 @@ linear_transform_loops (void)
dependence_relations = VEC_alloc (ddr_p, heap, 10 * 10);
if (!compute_data_dependences_for_loop (loop_nest, true, &datarefs,
&dependence_relations))
- continue;
+ goto free_and_continue;
lambda_collect_parameters (datarefs, &lambda_parameters);
if (!lambda_compute_access_matrices (datarefs, lambda_parameters,
loop_nest->num))
- continue;
+ goto free_and_continue;
if (dump_file && (dump_flags & TDF_DETAILS))
dump_ddrs (dump_file, dependence_relations);