diff options
author | Martin Liska <mliska@suse.cz> | 2018-08-07 13:59:13 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-08-07 11:59:13 +0000 |
commit | 806562fd6269a3d7e0651d5bbf9085c7708fb5cd (patch) | |
tree | eaa3b52796a56d33f60e9066a720a28f86390a1f /gcc/predict.def | |
parent | ea2329d170827cf9d321324844035a4a2dcfec96 (diff) | |
download | gcc-806562fd6269a3d7e0651d5bbf9085c7708fb5cd.zip gcc-806562fd6269a3d7e0651d5bbf9085c7708fb5cd.tar.gz gcc-806562fd6269a3d7e0651d5bbf9085c7708fb5cd.tar.bz2 |
Add malloc predictor (PR middle-end/83023).
2018-08-07 Martin Liska <mliska@suse.cz>
PR middle-end/83023
* predict.c (expr_expected_value_1): Handle DECL_IS_MALLOC,
BUILT_IN_REALLOC and DECL_IS_OPERATOR_NEW.
* predict.def (PRED_MALLOC_NONNULL): New predictor.
* doc/extend.texi: Document that malloc attribute adds
hit to compiler.
2018-08-07 Martin Liska <mliska@suse.cz>
PR middle-end/83023
* gcc.dg/predict-16.c: New test.
* g++.dg/predict-1.C: New test.
From-SVN: r263355
Diffstat (limited to 'gcc/predict.def')
-rw-r--r-- | gcc/predict.def | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/predict.def b/gcc/predict.def index 4ed97ed..76e6590 100644 --- a/gcc/predict.def +++ b/gcc/predict.def @@ -51,6 +51,10 @@ DEF_PREDICTOR (PRED_NO_PREDICTION, "no prediction", PROB_ALWAYS, 0) DEF_PREDICTOR (PRED_UNCONDITIONAL, "unconditional jump", PROB_ALWAYS, PRED_FLAG_FIRST_MATCH) +/* Return value of malloc function is almost always non-null. */ +DEF_PREDICTOR (PRED_MALLOC_NONNULL, "malloc returned non-NULL", \ + PROB_VERY_LIKELY, PRED_FLAG_FIRST_MATCH) + /* Use number of loop iterations determined by # of iterations analysis to set probability. We don't want to use Dempster-Shaffer theory here, as the predictions is exact. */ @@ -169,7 +173,6 @@ DEF_PREDICTOR (PRED_HOT_LABEL, "hot label", HITRATE (85), 0) DEF_PREDICTOR (PRED_COLD_LABEL, "cold label", PROB_VERY_LIKELY, PRED_FLAG_FIRST_MATCH) - /* The following predictors are used in Fortran. */ /* Branch leading to an integer overflow are extremely unlikely. */ |