diff options
Diffstat (limited to 'gcc-4.9/gcc/cfghooks.c')
-rw-r--r-- | gcc-4.9/gcc/cfghooks.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/gcc-4.9/gcc/cfghooks.c b/gcc-4.9/gcc/cfghooks.c index bc1634aac..87da0d02a 100644 --- a/gcc-4.9/gcc/cfghooks.c +++ b/gcc-4.9/gcc/cfghooks.c @@ -500,7 +500,6 @@ split_block (basic_block bb, void *i) new_bb->count = bb->count; new_bb->frequency = bb->frequency; - new_bb->discriminator = bb->discriminator; if (dom_info_available_p (CDI_DOMINATORS)) { @@ -833,6 +832,9 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge), fallthru = split_block_after_labels (bb); dummy = fallthru->src; + dummy->count = 0; + dummy->frequency = 0; + fallthru->count = 0; bb = fallthru->dest; /* Redirect back edges we want to keep. */ @@ -842,20 +844,13 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge), if (redirect_edge_p (e)) { + dummy->frequency += EDGE_FREQUENCY (e); + dummy->count += e->count; + fallthru->count += e->count; ei_next (&ei); continue; } - dummy->frequency -= EDGE_FREQUENCY (e); - dummy->count -= e->count; - if (dummy->frequency < 0) - dummy->frequency = 0; - if (dummy->count < 0) - dummy->count = 0; - fallthru->count -= e->count; - if (fallthru->count < 0) - fallthru->count = 0; - e_src = e->src; jump = redirect_edge_and_branch_force (e, bb); if (jump != NULL) |