diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-23 22:29:14 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-23 22:29:14 +0000 |
commit | b41438e533878db242f60e768da7f4ef548639d0 (patch) | |
tree | f848a4c4747fe1d9158aa3bfedbaa571b97b8c80 /gcc/config/ia64 | |
parent | 38af37fc0b653ee1f2d01a724472ad49de77ab55 (diff) | |
download | gcc-b41438e533878db242f60e768da7f4ef548639d0.tar.gz |
* predict.c (probability_reliable_p): New predicate.
(edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
(predict_loops): Do not predict loop exit with less than 2%
probability.
* basic-block.h (edge_probability_reliable_p,
br_prob_note_reliable_p): Declare.
* ia64.h (ia64_print_operand): Do not disable on-chip branch
prediction when static predictor is not reliable.
* rs6000.c (output_cbranch): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116358 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/ia64')
-rw-r--r-- | gcc/config/ia64/ia64.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 14e85cae3c7..d38a19a1501 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -4656,11 +4656,13 @@ ia64_print_operand (FILE * file, rtx x, int code) int pred_val = INTVAL (XEXP (x, 0)); /* Guess top and bottom 10% statically predicted. */ - if (pred_val < REG_BR_PROB_BASE / 50) + if (pred_val < REG_BR_PROB_BASE / 50 + && br_prob_note_reliable_p (x)) which = ".spnt"; else if (pred_val < REG_BR_PROB_BASE / 2) which = ".dpnt"; - else if (pred_val < REG_BR_PROB_BASE / 100 * 98) + else if (pred_val < REG_BR_PROB_BASE / 100 * 98 + || !br_prob_note_reliable_p (x)) which = ".dptk"; else which = ".sptk"; |