From adb99633aa7fd6d560c523f89d738e631f5e3c49 Mon Sep 17 00:00:00 2001 From: hubicka Date: Sun, 2 Jul 2017 22:11:14 +0000 Subject: * tree-complex.c (expand_complex_div_wide): update profile. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@249884 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-complex.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'gcc/tree-complex.c') diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index e0dd3d9922b..d61047bbf5f 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -1186,13 +1186,22 @@ expand_complex_div_wide (gimple_stmt_iterator *gsi, tree inner_type, bb_join = e->dest; bb_true = create_empty_bb (bb_cond); bb_false = create_empty_bb (bb_true); + bb_true->frequency = bb_false->frequency = bb_cond->frequency / 2; + bb_true->count = bb_false->count + = bb_cond->count.apply_probability (profile_probability::even ()); /* Wire the blocks together. */ e->flags = EDGE_TRUE_VALUE; + e->count = bb_true->count; + /* TODO: With value profile we could add an historgram to determine real + branch outcome. */ + e->probability = profile_probability::even (); redirect_edge_succ (e, bb_true); - make_edge (bb_cond, bb_false, EDGE_FALSE_VALUE); - make_edge (bb_true, bb_join, EDGE_FALLTHRU); - make_edge (bb_false, bb_join, EDGE_FALLTHRU); + edge e2 = make_edge (bb_cond, bb_false, EDGE_FALSE_VALUE); + e2->count = bb_false->count; + e2->probability = profile_probability::even (); + make_single_succ_edge (bb_true, bb_join, EDGE_FALLTHRU); + make_single_succ_edge (bb_false, bb_join, EDGE_FALLTHRU); add_bb_to_loop (bb_true, bb_cond->loop_father); add_bb_to_loop (bb_false, bb_cond->loop_father); -- cgit v1.2.1