diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2017-10-07 18:33:26 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2017-10-07 16:33:26 +0000 |
commit | 59e2f25ee754cc258b55fac759afd6d47d8879d8 (patch) | |
tree | 14ae4b624d773b2658921551ba08e6575a3cb31d /gcc | |
parent | b8f49e4a98a32d0486f9cee17406db508b7a5e79 (diff) | |
download | gcc-59e2f25ee754cc258b55fac759afd6d47d8879d8.zip gcc-59e2f25ee754cc258b55fac759afd6d47d8879d8.tar.gz gcc-59e2f25ee754cc258b55fac759afd6d47d8879d8.tar.bz2 |
tree-switch-conversion.c (do_jump_if_equal, [...]): Update profile.
* tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
Update profile.
From-SVN: r253512
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-switch-conversion.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b56f7e6..e8e18d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-10-06 Jan Hubicka <hubicka@ucw.cz> + + * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns): + Update profile. + 2017-10-06 Martin Liska <mliska@suse.cz> * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c index 6d7c2c4..19f0a73 100644 --- a/gcc/tree-switch-conversion.c +++ b/gcc/tree-switch-conversion.c @@ -2248,10 +2248,12 @@ do_jump_if_equal (basic_block bb, tree op0, tree op1, basic_block label_bb, edge false_edge = split_block (bb, cond); false_edge->flags = EDGE_FALSE_VALUE; false_edge->probability = prob.invert (); + false_edge->count = bb->count.apply_probability (false_edge->probability); edge true_edge = make_edge (bb, label_bb, EDGE_TRUE_VALUE); fix_phi_operands_for_edge (true_edge, phi_mapping); true_edge->probability = prob; + true_edge->count = bb->count.apply_probability (true_edge->probability); return false_edge->dest; } @@ -2291,10 +2293,12 @@ emit_cmp_and_jump_insns (basic_block bb, tree op0, tree op1, edge false_edge = split_block (bb, cond); false_edge->flags = EDGE_FALSE_VALUE; false_edge->probability = prob.invert (); + false_edge->count = bb->count.apply_probability (false_edge->probability); edge true_edge = make_edge (bb, label_bb, EDGE_TRUE_VALUE); fix_phi_operands_for_edge (true_edge, phi_mapping); true_edge->probability = prob; + true_edge->count = bb->count.apply_probability (true_edge->probability); return false_edge->dest; } |