r263466 - in /trunk/gcc: ChangeLog builtin-type...
marxin@gcc.gnu.org
marxin@gcc.gnu.org
Fri Aug 10 09:43:00 GMT 2018
Author: marxin
Date: Fri Aug 10 09:43:06 2018
New Revision: 263466
URL: https://gcc.gnu.org/viewcvs?rev=263466&root=gcc&view=rev
Log:
Introduce __builtin_expect_with_probability (PR target/83610).
2018-08-10 Martin Liska <mliska@suse.cz>
PR target/83610
* builtin-types.def (BT_FN_LONG_LONG_LONG_DOUBLE): Add new
function type.
* builtins.c (expand_builtin_expect_with_probability):
New function.
(expand_builtin_expect_with_probability): New function.
(build_builtin_expect_predicate): Add new argumnet probability
for BUILT_IN_EXPECT_WITH_PROBABILITY.
(fold_builtin_expect):
(fold_builtin_2):
(fold_builtin_3):
* builtins.def (BUILT_IN_EXPECT_WITH_PROBABILITY):
* builtins.h (fold_builtin_expect): Set new argument.
* doc/extend.texi: Document __builtin_expect_with_probability.
* doc/invoke.texi: Likewise.
* gimple-fold.c (gimple_fold_call): Pass new argument.
* ipa-fnsummary.c (find_foldable_builtin_expect): Handle
also BUILT_IN_EXPECT_WITH_PROBABILITY.
* predict.c (get_predictor_value): New function.
(expr_expected_value): Add new argument probability. Assume
that predictor and probability are always non-null.
(expr_expected_value_1): Likewise. For __builtin_expect and
__builtin_expect_with_probability set probability. Handle
combination in binary expressions.
(tree_predict_by_opcode): Simplify code by simply calling
get_predictor_value.
(pass_strip_predict_hints::execute): Add handling of
BUILT_IN_EXPECT_WITH_PROBABILITY.
* predict.def (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Add
new predictor.
* tree.h (DECL_BUILT_IN_P): New function.
2018-08-10 Martin Liska <mliska@suse.cz>
PR target/83610
* gcc.dg/predict-17.c: New test.
* gcc.dg/predict-18.c: New test.
* gcc.dg/predict-19.c: New test.
Added:
trunk/gcc/testsuite/gcc.dg/predict-17.c
trunk/gcc/testsuite/gcc.dg/predict-18.c
trunk/gcc/testsuite/gcc.dg/predict-19.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtin-types.def
trunk/gcc/builtins.c
trunk/gcc/builtins.def
trunk/gcc/builtins.h
trunk/gcc/doc/extend.texi
trunk/gcc/doc/invoke.texi
trunk/gcc/gimple-fold.c
trunk/gcc/ipa-fnsummary.c
trunk/gcc/predict.c
trunk/gcc/predict.def
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree.h
More information about the Gcc-cvs
mailing list