diff options
author | Martin Liska <mliska@suse.cz> | 2018-01-19 13:05:20 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-01-19 12:05:20 +0000 |
commit | e2a1e6a441f9ced9412609cd4d8ae8ede52628a3 (patch) | |
tree | 4b5b32f73bb7f7d32c6c5d3c9876f543a772cdf4 /gcc/predict.c | |
parent | d1b9a5724b8a05d2d2d51b3e5d13cc785326c74f (diff) | |
download | gcc-e2a1e6a441f9ced9412609cd4d8ae8ede52628a3.zip gcc-e2a1e6a441f9ced9412609cd4d8ae8ede52628a3.tar.gz gcc-e2a1e6a441f9ced9412609cd4d8ae8ede52628a3.tar.bz2 |
Introduce PROB_UNINITIALIZED constant and use it in predict.def.
2018-01-19 Martin Liska <mliska@suse.cz>
* predict.c (predict_insn_def): Add new assert.
(struct branch_predictor): Change type to signed integer.
(test_prediction_value_range): Amend test to cover
PROB_UNINITIALIZED.
* predict.def (PRED_LOOP_ITERATIONS): Use the new constant.
(PRED_LOOP_ITERATIONS_GUESSED): Likewise.
(PRED_LOOP_ITERATIONS_MAX): Likewise.
(PRED_LOOP_IV_COMPARE): Likewise.
* predict.h (PROB_UNINITIALIZED): Define new constant.
From-SVN: r256887
Diffstat (limited to 'gcc/predict.c')
-rw-r--r-- | gcc/predict.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/predict.c b/gcc/predict.c index fdf5d82..340c766 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -545,6 +545,7 @@ predict_insn_def (rtx_insn *insn, enum br_predictor predictor, enum prediction taken) { int probability = predictor_info[(int) predictor].hitrate; + gcc_assert (probability != PROB_UNINITIALIZED); if (taken != TAKEN) probability = REG_BR_PROB_BASE - probability; @@ -4196,7 +4197,7 @@ namespace selftest { struct branch_predictor { const char *name; - unsigned probability; + int probability; }; #define DEF_PREDICTOR(ENUM, NAME, HITRATE, FLAGS) { NAME, HITRATE }, @@ -4211,6 +4212,9 @@ test_prediction_value_range () for (unsigned i = 0; predictors[i].name != NULL; i++) { + if (predictors[i].probability == PROB_UNINITIALIZED) + continue; + unsigned p = 100 * predictors[i].probability / REG_BR_PROB_BASE; ASSERT_TRUE (p > 50 && p <= 100); } |