diff options
Diffstat (limited to 'gcc/tree-loop-linear.c')
-rw-r--r-- | gcc/tree-loop-linear.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/tree-loop-linear.c b/gcc/tree-loop-linear.c index 2ef7eacec13..2840e9be4b7 100644 --- a/gcc/tree-loop-linear.c +++ b/gcc/tree-loop-linear.c @@ -308,7 +308,7 @@ linear_transform_loops (struct loops *loops) { if (dump_file) fprintf (dump_file, "Won't transform loop. Optimal transform is the identity transform\n"); - continue; + goto free_and_continue; } /* Check whether the transformation is legal. */ @@ -316,15 +316,15 @@ linear_transform_loops (struct loops *loops) { if (dump_file) fprintf (dump_file, "Can't transform loop, transform is illegal:\n"); - continue; + goto free_and_continue; } before = gcc_loopnest_to_lambda_loopnest (loops, loop_nest, &oldivs, &invariants); if (!before) - continue; - + goto free_and_continue; + if (dump_file) { fprintf (dump_file, "Before:\n"); @@ -346,6 +346,7 @@ linear_transform_loops (struct loops *loops) if (dump_file) fprintf (dump_file, "Successfully transformed loop.\n"); + free_and_continue: free_dependence_relations (dependence_relations); free_data_refs (datarefs); } |