profile.c (compute_branch_probabilities): Use REG_BR_PROB notes when re-constructing profile previously invalidated by loop.
* profile.c (compute_branch_probabilities): Use REG_BR_PROB notes when re-constructing profile previously invalidated by loop. From-SVN: r88115
This commit is contained in:
parent
ffe2e220bd
commit
5db0241f0c
|
@ -1,3 +1,8 @@
|
|||
2004-09-26 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
|
||||
when re-constructing profile previously invalidated by loop.
|
||||
|
||||
2004-09-25 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* tree-gimple.c: Move GIMPLE definition...
|
||||
|
|
|
@ -557,12 +557,24 @@ compute_branch_probabilities (void)
|
|||
num_branches++;
|
||||
}
|
||||
}
|
||||
/* Otherwise distribute the probabilities evenly so we get sane
|
||||
sum. Use simple heuristics that if there are normal edges,
|
||||
/* Otherwise try to preserve the existing REG_BR_PROB probabilities
|
||||
tree based profile guessing put into code. */
|
||||
else if (profile_status == PROFILE_ABSENT
|
||||
&& !ir_type ()
|
||||
&& bb->succ && bb->succ->succ_next
|
||||
&& (note = find_reg_note (BB_END (bb), REG_BR_PROB, 0)))
|
||||
{
|
||||
int prob = INTVAL (XEXP (note, 0));
|
||||
|
||||
BRANCH_EDGE (bb)->probability = prob;
|
||||
FALLTHRU_EDGE (bb)->probability = REG_BR_PROB_BASE - prob;
|
||||
}
|
||||
/* As a last resolt, distribute the probabilities evenly.
|
||||
Use simple heuristics that if there are normal edges,
|
||||
give all abnormals frequency of 0, otherwise distribute the
|
||||
frequency over abnormals (this is the case of noreturn
|
||||
calls). */
|
||||
else
|
||||
else if (profile_status == PROFILE_ABSENT)
|
||||
{
|
||||
int total = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue