From 649b2789d1a5e18be4bc10e1c35d81b405cf2b05 Mon Sep 17 00:00:00 2001 From: Pat Haugen Date: Wed, 23 Jun 2004 04:09:46 +0000 Subject: [PATCH] cfghooks.c (make_forwarder_block): Decrement count on fallthru edge when redirecting back edges. * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge when redirecting back edges. * cfghooks.c (split_block): Call make_single_succ_edge so that edge count/probability are set correctly. From-SVN: r83537 --- gcc/ChangeLog | 8 ++++++++ gcc/cfghooks.c | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ecd0f068d3d..70fe4eed2ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-06-22 Pat Haugen + + * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge + when redirecting back edges. + + * cfghooks.c (split_block): Call make_single_succ_edge so that edge + count/probability are set correctly. + 2004-06-22 Richard Henderson * c-typeck.c (emit_side_effect_warnings): Ignore error marks. diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c index 29f5dfd1695..bd67a21dc93 100644 --- a/gcc/cfghooks.c +++ b/gcc/cfghooks.c @@ -321,7 +321,7 @@ split_block (basic_block bb, void *i) set_immediate_dominator (CDI_DOMINATORS, new_bb, bb); } - return make_edge (bb, new_bb, EDGE_FALLTHRU); + return make_single_succ_edge (bb, new_bb, EDGE_FALLTHRU); } /* Splits block BB just after labels. The newly created edge is returned. */ @@ -566,6 +566,9 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge), dummy->frequency = 0; if (dummy->count < 0) dummy->count = 0; + fallthru->count -= e->count; + if (fallthru->count < 0) + fallthru->count = 0; jump = redirect_edge_and_branch_force (e, bb); if (jump) -- 2.30.2