summaryrefslogtreecommitdiff
path: root/gcc/profile.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-16 22:28:29 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-16 22:28:29 +0000
commit41d24834b5784dbbb08553f36eaa80386fc75d0a (patch)
tree6ad911f298df01a4dbc580f0c53b37b1d2a4a63f /gcc/profile.c
parentf9c6943bb1d4e5d0333f2d519ecf678898502570 (diff)
downloadgcc-41d24834b5784dbbb08553f36eaa80386fc75d0a.tar.gz
* basic-block.h (remove_fake_exit_edges): Declare.
* cfganal.c (remove_fake_predecessors): Rename from remove_fake_successors; iterate over predecessors. (remove_fake_exit_edges): New. * cfgcleanup.c (try_optimize_cfg): Use it. * gcse.c (one_pre_gcse_pass, store_motion): Likewise. * predict.c (estimate_probability): Likewise. (tree_estimate_probability, note_prediction_to_br_prob): Likewise. * tree-cfg.c (make_edges): Likewise. * tree-ssa-pre.c (fini_pre): Likewise. * profile.c (instrument_edges): Don't remove_fake_edges. (branch_prob): Do it earlier here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84840 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/profile.c')
-rw-r--r--gcc/profile.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/profile.c b/gcc/profile.c
index 1d16b4368ac..ad62f87ccb4 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -139,8 +139,6 @@ instrument_edges (struct edge_list *el)
int num_edges = NUM_EDGES (el);
basic_block bb;
- remove_fake_edges ();
-
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
{
edge e;
@@ -971,6 +969,8 @@ branch_prob (void)
compute_value_histograms (n_values, values);
}
+ remove_fake_edges ();
+
/* For each edge not on the spanning tree, add counting code. */
if (profile_arc_flag
&& coverage_counter_alloc (GCOV_COUNTER_ARCS, num_instrumented))
@@ -993,7 +993,6 @@ branch_prob (void)
}
}
- remove_fake_edges ();
free_aux_for_edges ();
if (!ir_type ())