Commit 109bb9be by Jan Hubicka Committed by Jan Hubicka

* cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.

From-SVN: r250243
parent b2ff44a8
2017-07-16 Jan Hubicka <hubicka@ucw.cz> 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
* cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
2017-07-16 Jan Hubicka <hubicka@ucw.cz>
* cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
fixpoint arithmetics. fixpoint arithmetics.
......
...@@ -1315,19 +1315,19 @@ cgraph_edge::redirect_call_stmt_to_callee (void) ...@@ -1315,19 +1315,19 @@ cgraph_edge::redirect_call_stmt_to_callee (void)
} }
gcc_assert (e2->speculative); gcc_assert (e2->speculative);
push_cfun (DECL_STRUCT_FUNCTION (e->caller->decl)); push_cfun (DECL_STRUCT_FUNCTION (e->caller->decl));
profile_probability prob = e->count.probability_in (e->count
+ e2->count);
if (prob.initialized_p ())
;
else if (e->frequency || e2->frequency)
prob = profile_probability::probability_in_gcov_type
(e->frequency, e->frequency + e2->frequency).guessed ();
else
prob = profile_probability::even ();
new_stmt = gimple_ic (e->call_stmt, new_stmt = gimple_ic (e->call_stmt,
dyn_cast<cgraph_node *> (ref->referred), dyn_cast<cgraph_node *> (ref->referred),
/* FIXME: cleanup. */ prob, e->count, e->count + e2->count);
profile_probability::from_reg_br_prob_base (
e->count > profile_count::zero ()
|| e2->count > profile_count::zero ()
? e->count.probability_in
(e->count + e2->count).to_reg_br_prob_base ()
: e->frequency || e2->frequency
? RDIV (e->frequency * REG_BR_PROB_BASE,
e->frequency + e2->frequency)
: REG_BR_PROB_BASE / 2),
e->count, e->count + e2->count);
e->speculative = false; e->speculative = false;
e->caller->set_call_stmt_including_clones (e->call_stmt, new_stmt, e->caller->set_call_stmt_including_clones (e->call_stmt, new_stmt,
false); false);
......
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