Commit 5db0241f by Jan Hubicka Committed by Jan Hubicka

profile.c (compute_branch_probabilities): Use REG_BR_PROB notes when…

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
parent ffe2e220
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;
......
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