Commit 813d6db9 by Martin Liska Committed by Martin Liska

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
parent 66ce8ff7
2018-01-23 Martin Liska <mliska@suse.cz> 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 * tree-profile.c (tree_profiling): Print function header to
aware reader which function we are working on. aware reader which function we are working on.
* value-prof.c (gimple_find_values_to_profile): Do not print * value-prof.c (gimple_find_values_to_profile): Do not print
......
...@@ -4216,7 +4216,7 @@ test_prediction_value_range () ...@@ -4216,7 +4216,7 @@ test_prediction_value_range ()
continue; continue;
unsigned p = 100 * predictors[i].probability / REG_BR_PROB_BASE; unsigned p = 100 * predictors[i].probability / REG_BR_PROB_BASE;
ASSERT_TRUE (p > 50 && p <= 100); ASSERT_TRUE (p >= 50 && p <= 100);
} }
} }
......
...@@ -118,15 +118,11 @@ DEF_PREDICTOR (PRED_TREE_FPOPCODE, "fp_opcode (on trees)", HITRATE (90), 0) ...@@ -118,15 +118,11 @@ DEF_PREDICTOR (PRED_TREE_FPOPCODE, "fp_opcode (on trees)", HITRATE (90), 0)
/* Branch guarding call is probably taken. */ /* Branch guarding call is probably taken. */
DEF_PREDICTOR (PRED_CALL, "call", HITRATE (67), 0) DEF_PREDICTOR (PRED_CALL, "call", HITRATE (67), 0)
/* PRED_CALL is not very reliable predictor and it turns out to be even /* Call predictors are for now ignored, lets leave the predictor
less reliable for indirect calls and polymorphic calls. For spec2k6 to measure its benefit. */
the predictio nis slightly in the direction of taking the call. */ DEF_PREDICTOR (PRED_INDIR_CALL, "indirect call", PROB_EVEN, 0)
DEF_PREDICTOR (PRED_INDIR_CALL, "indirect call", HITRATE (86), 0) DEF_PREDICTOR (PRED_POLYMORPHIC_CALL, "polymorphic call", PROB_EVEN, 0)
DEF_PREDICTOR (PRED_POLYMORPHIC_CALL, "polymorphic call", HITRATE (59), 0) DEF_PREDICTOR (PRED_RECURSIVE_CALL, "recursive call", PROB_EVEN, 0)
/* Recursive calls are usually not taken or the function will recurse
indefinitely. */
DEF_PREDICTOR (PRED_RECURSIVE_CALL, "recursive call", HITRATE (75), 0)
/* Branch causing function to terminate is probably not taken. */ /* Branch causing function to terminate is probably not taken. */
DEF_PREDICTOR (PRED_TREE_EARLY_RETURN, "early return (on trees)", HITRATE (66), DEF_PREDICTOR (PRED_TREE_EARLY_RETURN, "early return (on trees)", HITRATE (66),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment