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:
parent
66ce8ff760
commit
813d6db9c4
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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),
|
||||
|
Loading…
Reference in New Issue
Block a user