diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-28 16:19:26 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-28 16:19:26 +0000 |
commit | 4b0a9554ad900aa505ed8774de9ac4d700c93234 (patch) | |
tree | 5b78eb120055abb834a6216175418c0de85cefd4 /gcc/rtl-profile.c | |
parent | 4ae7d3a8b0dd16f89cf76f91c8052308987f45e2 (diff) | |
download | gcc-4b0a9554ad900aa505ed8774de9ac4d700c93234.tar.gz |
* profile.c (branch_prob): Call to init_edge_profiler added.
* rtl-profile.c (rtl_init_edge_profiler): New function.
(rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
call to safe_insert_insn_on_edge.
(rtl_profile_hooks): rtl_init_edge_profiler added.
* tree-profile.c (tree_init_edge_profiler): New function.
(tree_profile_hooks): tree_init_edge_profiler added.
* value-prof.h (profile_hooks) init_edge_profiler prototype added.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89764 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtl-profile.c')
-rw-r--r-- | gcc/rtl-profile.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/rtl-profile.c b/gcc/rtl-profile.c index 2d0c69ccb91..3439f472b7b 100644 --- a/gcc/rtl-profile.c +++ b/gcc/rtl-profile.c @@ -64,6 +64,16 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "tree.h" #include "ggc.h" +/* Do initialization work for the edge profiler. */ + +static void +rtl_init_edge_profiler (void) +{ + /* gen_edge_profiler calls safe_insert_insn_on_edge which needs + register liveness data to be available. */ + life_analysis (NULL, 0); +} + /* Output instructions as RTL to increment the edge execution count. */ static void @@ -85,7 +95,7 @@ rtl_gen_edge_profiler (int edgeno, edge e) sequence = get_insns (); end_sequence (); - insert_insn_on_edge (sequence, e); + safe_insert_insn_on_edge (sequence, e); rebuild_jump_labels (e->insns.r); } @@ -413,6 +423,7 @@ static FILE *rtl_profile_dump_file (void) { struct profile_hooks rtl_profile_hooks = { + rtl_init_edge_profiler, rtl_gen_edge_profiler, rtl_gen_interval_profiler, rtl_gen_pow2_profiler, |