summaryrefslogtreecommitdiff
path: root/gcc/config/ia64
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-23 22:29:14 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-23 22:29:14 +0000
commitb41438e533878db242f60e768da7f4ef548639d0 (patch)
treef848a4c4747fe1d9158aa3bfedbaa571b97b8c80 /gcc/config/ia64
parent38af37fc0b653ee1f2d01a724472ad49de77ab55 (diff)
downloadgcc-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.c6
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";