Commit aa11163b by Jan Hubicka Committed by Jan Hubicka

gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path as unlikely; update profile.


	* gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
	as unlikely; update profile.

From-SVN: r249277
parent 8d71d7cd
2017-06-16 Jan Hubicka <hubicka@ucw.cz>
* gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
as unlikely; update profile.
2017-06-16 Jan Hubicka <hubicka@ucw.cz>
* predict.c (force_edge_cold): Handle declaring edges impossible
more aggresively.
......
......@@ -137,6 +137,15 @@ isolate_path (basic_block bb, basic_block duplicate,
gimple_stmt_iterator si, si2;
edge_iterator ei;
edge e2;
bool impossible = true;
for (si = gsi_start_bb (bb); gsi_stmt (si) != stmt; gsi_next (&si))
if (stmt_can_terminate_bb_p (gsi_stmt (si)))
{
impossible = false;
break;
}
force_edge_cold (e, impossible);
/* First duplicate BB if we have not done so already and remove all
the duplicate's outgoing edges as duplicate is going to unconditionally
......@@ -145,10 +154,14 @@ isolate_path (basic_block bb, basic_block duplicate,
if (!duplicate)
{
duplicate = duplicate_block (bb, NULL, NULL);
bb->frequency = 0;
bb->count = profile_count::zero ();
if (!ret_zero)
for (ei = ei_start (duplicate->succs); (e2 = ei_safe_edge (ei)); )
remove_edge (e2);
}
bb->frequency += EDGE_FREQUENCY (e);
bb->count += e->count;
/* Complete the isolation step by redirecting E to reach DUPLICATE. */
e2 = redirect_edge_and_branch (e, duplicate);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment