Remove predictors that are unrealiable.

2018-01-23  Martin Liska  <mliska@suse.cz>

	* predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in
	order to ignore the predictor.
	(PRED_POLYMORPHIC_CALL): Likewise.
	(PRED_RECURSIVE_CALL): Likewise.

From-SVN: r256988
This commit is contained in:
Martin Liska 2018-01-23 16:43:59 +01:00 committed by Martin Liska
parent 66ce8ff760
commit 813d6db9c4
3 changed files with 13 additions and 10 deletions

View File

@ -1,3 +1,10 @@
2018-01-23 Martin Liska <mliska@suse.cz>
* predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in
order to ignore the predictor.
(PRED_POLYMORPHIC_CALL): Likewise.
(PRED_RECURSIVE_CALL): Likewise.
2018-01-23 Martin Liska <mliska@suse.cz>
* tree-profile.c (tree_profiling): Print function header to

View File

@ -4216,7 +4216,7 @@ test_prediction_value_range ()
continue;
unsigned p = 100 * predictors[i].probability / REG_BR_PROB_BASE;
ASSERT_TRUE (p > 50 && p <= 100);
ASSERT_TRUE (p >= 50 && p <= 100);
}
}

View File

@ -118,15 +118,11 @@ DEF_PREDICTOR (PRED_TREE_FPOPCODE, "fp_opcode (on trees)", HITRATE (90), 0)
/* Branch guarding call is probably taken. */
DEF_PREDICTOR (PRED_CALL, "call", HITRATE (67), 0)
/* PRED_CALL is not very reliable predictor and it turns out to be even
less reliable for indirect calls and polymorphic calls. For spec2k6
the predictio nis slightly in the direction of taking the call. */
DEF_PREDICTOR (PRED_INDIR_CALL, "indirect call", HITRATE (86), 0)
DEF_PREDICTOR (PRED_POLYMORPHIC_CALL, "polymorphic call", HITRATE (59), 0)
/* Recursive calls are usually not taken or the function will recurse
indefinitely. */
DEF_PREDICTOR (PRED_RECURSIVE_CALL, "recursive call", HITRATE (75), 0)
/* Call predictors are for now ignored, lets leave the predictor
to measure its benefit. */
DEF_PREDICTOR (PRED_INDIR_CALL, "indirect call", PROB_EVEN, 0)
DEF_PREDICTOR (PRED_POLYMORPHIC_CALL, "polymorphic call", PROB_EVEN, 0)
DEF_PREDICTOR (PRED_RECURSIVE_CALL, "recursive call", PROB_EVEN, 0)
/* Branch causing function to terminate is probably not taken. */
DEF_PREDICTOR (PRED_TREE_EARLY_RETURN, "early return (on trees)", HITRATE (66),