predict.c (estimate_probability): If no prediction was found...

* predict.c (estimate_probability): If no prediction was found, then
        predict the successor that is the next physical block (if such a
        successor exists).

From-SVN: r33683
This commit is contained in:
Jeffrey A Law 2000-05-04 20:40:17 +00:00 committed by Jeff Law
parent 18b554cb71
commit 926fd2e161
2 changed files with 19 additions and 0 deletions

View File

@ -1,3 +1,9 @@
Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com)
* predict.c (estimate_probability): If no prediction was found, then
predict the successor that is the next physical block (if such a
successor exists).
2000-05-04 Richard Henderson <rth@cygnus.com>
* config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.

View File

@ -202,6 +202,19 @@ estimate_probability (loops_info)
break;
}
/* If one of the blocks already directly follows the current
block, then predict it as the taken path. This reduces
random block movement. */
for (e = BASIC_BLOCK (i)->succ; e; e = e->succ_next)
if (e->dest->index == i + 1)
{
if (e->flags & EDGE_FALLTHRU)
prob = 0;
else
prob = REG_BR_PROB_BASE;
goto emitnote;
}
/* If we havn't chosen something by now, predict 50-50. */
prob = REG_BR_PROB_BASE / 2;