diff options
author | Martin Jambor <mjambor@suse.cz> | 2017-07-31 14:43:24 +0200 |
---|---|---|
committer | Martin Jambor <mjambor@suse.cz> | 2017-07-31 14:43:24 +0200 |
commit | b32f12dece884f1fa0f04c643a77105aff6ce8bc (patch) | |
tree | cdab5f10806561fc198f907299b0e55eb5701ef0 /gcc/tree-complex.c | |
parent | 166bec868d991fdf71f9a66f994e5977fcab4aa2 (diff) | |
parent | a168a775e93ec31ae743ad282d8e60fa1c116891 (diff) | |
download | gcc-gcn.tar.gz |
Merge branch 'master' into gcngcn
Diffstat (limited to 'gcc/tree-complex.c')
-rw-r--r-- | gcc/tree-complex.c | 15 |
1 files changed, 12 insertions, 3 deletions
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); |