]> gcc.gnu.org Git - gcc.git/commit
Make __builtin_expect effective in switch statements (PR middle-end/PR59521).
authorMartin Liska <mliska@suse.cz>
Mon, 3 Sep 2018 07:51:56 +0000 (09:51 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Mon, 3 Sep 2018 07:51:56 +0000 (07:51 +0000)
commitadd4cbca8cf60d1108959de10a6c4b66d90464dc
tree42056a80e427e22c26a9f90994acf4d459f9b414
parent106fd43fee5e964ddf3017cfd3de1046978d490d
Make __builtin_expect effective in switch statements (PR middle-end/PR59521).

2018-09-03  Martin Liska  <mliska@suse.cz>

  PR middle-end/59521
* predict.c (set_even_probabilities): Add likely_edges
        argument and handle cases where we have precisely one
        likely edge.
(combine_predictions_for_bb): Catch also likely_edges.
(tree_predict_by_opcode): Handle gswitch statements.
* tree-cfg.h (find_case_label_for_value): New declaration.
(find_taken_edge_switch_expr): Likewise.
* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
        Find pivot in decision tree based on probabily, not by number of
        nodes.
2018-09-03  Martin Liska  <mliska@suse.cz>

  PR middle-end/59521
* c-c++-common/pr59521-1.c: New test.
* c-c++-common/pr59521-2.c: New test.
* gcc.dg/tree-prof/pr59521-3.c: New test.

From-SVN: r264050
gcc/ChangeLog
gcc/predict.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/pr59521-1.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/pr59521-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-prof/pr59521-3.c [new file with mode: 0644]
gcc/tree-cfg.c
gcc/tree-cfg.h
gcc/tree-switch-conversion.c
This page took 0.059689 seconds and 5 git commands to generate.