https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115120

--- Comment #5 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
considering ivopts bails out on doloop prediction for multiple exits anyway,
what do you think about:

diff --git a/gcc/tree-ssa-loop-ivcanon.cc b/gcc/tree-ssa-loop-ivcanon.cc
index 5ef24a91917..d1b25ad7dea 100644
--- a/gcc/tree-ssa-loop-ivcanon.cc
+++ b/gcc/tree-ssa-loop-ivcanon.cc
@@ -1319,7 +1319,8 @@ canonicalize_loop_induction_variables (class loop *loop,

   if (create_iv
       && niter && !chrec_contains_undetermined (niter)
-      && exit && just_once_each_iteration_p (loop, exit->src))
+      && exit && just_once_each_iteration_p (loop, exit->src)
+      && (single_dom_exit (loop) || targetm.predict_doloop_p (loop)))
     {
       tree iv_niter = niter;
       if (may_be_zero)

richi?

Reply via email to