diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2012-01-25 17:11:50 +0400 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2012-01-25 17:11:50 +0400 |
commit | 9ca3d00efe98f6bdcb48b6fc7a188fd1193e569f (patch) | |
tree | 5fd391bdadd032d481ad489b30f553a206beaccc /gcc/tree-predcom.c | |
parent | b9264b5f91c9d4242d7fea412a17016e05d5a3f1 (diff) | |
download | gcc-9ca3d00efe98f6bdcb48b6fc7a188fd1193e569f.tar.gz |
tree-predcom.c (tree_predictive_commoning_loop): Bail out when compute_data_dependences_for_loop returns false.
* tree-predcom.c (tree_predictive_commoning_loop): Bail out when
compute_data_dependences_for_loop returns false.
* tree-parloops.c (loop_parallel_p): Likewise.
From-SVN: r183518
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 751bdebfa8a..64198788967 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); |