From 8fb0ae8223ee3529675d2f66aa4ca94af776e943 Mon Sep 17 00:00:00 2001
From: Jan Hubicka <hubicka@ucw.cz>
Date: Fri, 16 Jun 2017 21:01:39 +0200
Subject: [PATCH] tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts):
 Update profile.

	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
	profile.
	(try_unroll_loop_completely): Fix reporting.

From-SVN: r249275
---
 gcc/ChangeLog               | 6 ++++++
 gcc/tree-ssa-loop-ivcanon.c | 7 +++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eb688d2f37be..44ef8579998e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
+
+	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
+	profile.
+	(try_unroll_loop_completely): Fix reporting.
+
 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
 
 	* tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index f4ebe4837e09..82ad59c42530 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -529,6 +529,8 @@ remove_exits_and_undefined_stmts (struct loop *loop, unsigned int npeeled)
 	    }
 	  if (!loop_exit_edge_p (loop, exit_edge))
 	    exit_edge = EDGE_SUCC (bb, 1);
+	  exit_edge->probability = REG_BR_PROB_BASE;
+	  exit_edge->count = exit_edge->src->count;
 	  gcc_checking_assert (loop_exit_edge_p (loop, exit_edge));
 	  gcond *cond_stmt = as_a <gcond *> (elt->stmt);
 	  if (exit_edge->flags & EDGE_TRUE_VALUE)
@@ -853,8 +855,9 @@ try_unroll_loop_completely (struct loop *loop,
 		     loop->num);
 	  return false;
 	}
-      dump_printf_loc (report_flags, locus,
-                       "loop turned into non-loop; it never loops.\n");
+      if (!n_unroll)
+        dump_printf_loc (report_flags, locus,
+                         "loop turned into non-loop; it never loops.\n");
 
       initialize_original_copy_tables ();
       auto_sbitmap wont_exit (n_unroll + 1);
-- 
GitLab