mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-16 08:43:48 +08:00
cfg.c (update_bb_profile_for_threading): Fix profile updating.
* cfg.c (update_bb_profile_for_threading): Fix profile updating. (scale_bbs_frequencies_int): Watch roundoff errors. * predict.c (return_prediction): Initialize return_stmt. From-SVN: r102087
This commit is contained in:
parent
866c78db25
commit
84fc24e8a0
@ -1,3 +1,9 @@
|
||||
2005-07-16 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* cfg.c (update_bb_profile_for_threading): Fix profile updating.
|
||||
(scale_bbs_frequencies_int): Watch roundoff errors.
|
||||
* predict.c (return_prediction): Initialize return_stmt.
|
||||
|
||||
2005-07-16 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* profile.c (rest_of_handle_branch_prob): Fix handling of estimation
|
||||
|
10
gcc/cfg.c
10
gcc/cfg.c
@ -896,7 +896,11 @@ update_bb_profile_for_threading (basic_block bb, int edge_frequency,
|
||||
int scale = 65536 * REG_BR_PROB_BASE / prob;
|
||||
|
||||
FOR_EACH_EDGE (c, ei, bb->succs)
|
||||
c->probability = (c->probability * scale) / 65536;
|
||||
{
|
||||
c->probability = (c->probability * scale) / 65536;
|
||||
if (c->probability > REG_BR_PROB_BASE)
|
||||
c->probability = REG_BR_PROB_BASE;
|
||||
}
|
||||
}
|
||||
|
||||
gcc_assert (bb == taken_edge->src);
|
||||
@ -917,6 +921,10 @@ scale_bbs_frequencies_int (basic_block *bbs, int nbbs, int num, int den)
|
||||
{
|
||||
int i;
|
||||
edge e;
|
||||
if (num < 0)
|
||||
num = 0;
|
||||
if (num > den)
|
||||
return;
|
||||
for (i = 0; i < nbbs; i++)
|
||||
{
|
||||
edge_iterator ei;
|
||||
|
@ -1206,7 +1206,7 @@ return_prediction (tree val, enum prediction *prediction)
|
||||
static void
|
||||
apply_return_prediction (int *heads)
|
||||
{
|
||||
tree return_stmt;
|
||||
tree return_stmt = NULL;
|
||||
tree return_val;
|
||||
edge e;
|
||||
tree phi;
|
||||
|
Loading…
Reference in New Issue
Block a user