tree-ssa-dce.c (remove_dead_stmt): Update profile.
* tree-ssa-dce.c (remove_dead_stmt): Update profile. * tree-split_edge.c (tree_split_edge): Likewise. (thread_jumps): Likewise. From-SVN: r87284
This commit is contained in:
parent
229031d0e2
commit
b829f3fac7
@ -1,3 +1,9 @@
|
||||
2004-09-10 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* tree-ssa-dce.c (remove_dead_stmt): Update profile.
|
||||
* tree-split_edge.c (tree_split_edge): Likewise.
|
||||
(thread_jumps): Likewise.
|
||||
|
||||
2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
|
||||
|
@ -3018,7 +3018,11 @@ tree_split_edge (edge edge_in)
|
||||
after_bb = edge_in->src;
|
||||
|
||||
new_bb = create_empty_bb (after_bb);
|
||||
new_bb->frequency = EDGE_FREQUENCY (edge_in);
|
||||
new_bb->count = edge_in->count;
|
||||
new_edge = make_edge (new_bb, dest, EDGE_FALLTHRU);
|
||||
new_edge->probability = REG_BR_PROB_BASE;
|
||||
new_edge->count = edge_in->count;
|
||||
|
||||
/* Find all the PHI arguments on the original edge, and change them to
|
||||
the new edge. Do it before redirection, so that the argument does not
|
||||
@ -3852,6 +3856,8 @@ thread_jumps (void)
|
||||
forwardable. */
|
||||
for (e = bb->succ; e; e = next)
|
||||
{
|
||||
int freq;
|
||||
gcov_type count;
|
||||
next = e->succ_next;
|
||||
|
||||
/* If the edge is abnormal or its destination is not
|
||||
@ -3860,6 +3866,9 @@ thread_jumps (void)
|
||||
|| !tree_forwarder_block_p (e->dest))
|
||||
continue;
|
||||
|
||||
count = e->count;
|
||||
freq = EDGE_FREQUENCY (e);
|
||||
|
||||
/* Now walk through as many forwarder block as possible to
|
||||
find the ultimate destination we want to thread our jump
|
||||
to. */
|
||||
@ -3879,6 +3888,15 @@ thread_jumps (void)
|
||||
break;
|
||||
|
||||
bb_ann (dest)->forwardable = 0;
|
||||
dest->frequency -= freq;
|
||||
if (dest->frequency < 0)
|
||||
dest->frequency = 0;
|
||||
dest->count -= count;
|
||||
if (dest->count < 0)
|
||||
dest->count = 0;
|
||||
dest->succ->count -= count;
|
||||
if (dest->succ->count < 0)
|
||||
dest->succ->count = 0;
|
||||
}
|
||||
|
||||
/* Reset the forwardable marks to 1. */
|
||||
|
@ -739,6 +739,8 @@ remove_dead_stmt (block_stmt_iterator *i, basic_block bb)
|
||||
/* Redirect the first edge out of BB to reach POST_DOM_BB. */
|
||||
redirect_edge_and_branch (bb->succ, post_dom_bb);
|
||||
PENDING_STMT (bb->succ) = NULL;
|
||||
bb->succ->probability = REG_BR_PROB_BASE;
|
||||
bb->succ->count = bb->count;
|
||||
|
||||
/* The edge is no longer associated with a conditional, so it does
|
||||
not have TRUE/FALSE flags. */
|
||||
|
Loading…
Reference in New Issue
Block a user