This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Make PROB_VERY_LIKELY more likely.

Currently, PROB_VERY_UNLIKELY and PROB_VERY_LIKELY are given values that
correspond to slightly less than 10% and slightly more than 90%.  I'd
like to change that to 1% and 99%, because builtin_expect uses
PROB_VERY_LIKELY.  90% isn't high enough to suit power4 branch hints,
where we only want to give static prediction hints on branches if the
calculated probability is greater than the hit-rate of the processor
dynamic branch prediction unit.  rs6000.c:output_cbranch uses a level of
98% (which is possibly a little optimistic), so for builtin_expect to
cause branch hints we need better than 98%.  REG_BR_PROB_BASE is 10000,
so 1% is still a reasonable number to work with, ie. it's
distinguishable from 0.

	PR 19803
	* predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.

Bootstrap, regression test on powerpc64-linux in progress.  OK for
mainline and 3.4?

Index: gcc/predict.c
RCS file: /cvs/gcc/gcc/gcc/predict.c,v
retrieving revision 1.137
diff -u -p -r1.137 predict.c
--- gcc/predict.c	20 Jan 2005 12:45:12 -0000	1.137
+++ gcc/predict.c	7 Feb 2005 03:51:14 -0000
@@ -67,7 +67,7 @@ static sreal real_zero, real_one, real_a
 	     real_inv_br_prob_base, real_one_half, real_bb_freq_max;
 /* Random guesstimation given names.  */
 #define PROB_EVEN		(REG_BR_PROB_BASE / 2)

Alan Modra
IBM OzLabs - Linux Technology Centre

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]