diff options
Diffstat (limited to 'gcc/tree-predcom.c')
-rw-r--r-- | gcc/tree-predcom.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c index 751bdeb..6419878 100644 --- a/gcc/tree-predcom.c +++ b/gcc/tree-predcom.c @@ -2476,8 +2476,17 @@ tree_predictive_commoning_loop (struct loop *loop) datarefs = VEC_alloc (data_reference_p, heap, 10); dependences = VEC_alloc (ddr_p, heap, 10); loop_nest = VEC_alloc (loop_p, heap, 3); - compute_data_dependences_for_loop (loop, true, &loop_nest, &datarefs, - &dependences); + if (! compute_data_dependences_for_loop (loop, true, &loop_nest, &datarefs, + &dependences)) + { + if (dump_file && (dump_flags & TDF_DETAILS)) + fprintf (dump_file, "Cannot analyze data dependencies\n"); + VEC_free (loop_p, heap, loop_nest); + free_data_refs (datarefs); + free_dependence_relations (dependences); + return false; + } + if (dump_file && (dump_flags & TDF_DETAILS)) dump_data_dependence_relations (dump_file, dependences); |