From c2893c6e1fbaef291cf69c4444cc45e77069eb3f Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 11 Jan 2018 18:47:20 +0100 Subject: [PATCH] re PR tree-optimization/83189 (internal compiler error: in probability_in, at profile-count.h:1050) PR middle-end/83189 * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. From-SVN: r256545 --- gcc/ChangeLog | 5 +++++ gcc/gimple-ssa-isolate-paths.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8bd20f6aeb..069d5bbe63a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-01-11 Jan Hubicka + + PR middle-end/83189 + * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. + 2018-01-11 Jan Hubicka PR middle-end/83718 diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c index 73489bf254b..131705d1827 100644 --- a/gcc/gimple-ssa-isolate-paths.c +++ b/gcc/gimple-ssa-isolate-paths.c @@ -138,6 +138,7 @@ isolate_path (basic_block bb, basic_block duplicate, edge_iterator ei; edge e2; bool impossible = true; + profile_count count = e->count (); for (si = gsi_start_bb (bb); gsi_stmt (si) != stmt; gsi_next (&si)) if (stmt_can_terminate_bb_p (gsi_stmt (si))) @@ -154,11 +155,12 @@ isolate_path (basic_block bb, basic_block duplicate, if (!duplicate) { duplicate = duplicate_block (bb, NULL, NULL); - bb->count = profile_count::zero (); + duplicate->count = profile_count::zero (); if (!ret_zero) for (ei = ei_start (duplicate->succs); (e2 = ei_safe_edge (ei)); ) remove_edge (e2); } + bb->count -= count; /* Complete the isolation step by redirecting E to reach DUPLICATE. */ e2 = redirect_edge_and_branch (e, duplicate); -- 2.30.2