This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
updating edge profiling
- From: qiongc at cse dot unsw dot edu dot au (Qiong Cai)
- To: gcc at gcc dot gnu dot org
- Date: Tue, 8 Jun 2004 23:07:21 +1000
- Subject: updating edge profiling
Hi,
I met a problem of updating edge profiling when the CFG
is implicitly changed.
For example(maybe silly), x = a - b is changed to the following
codes:
if ( a == b )
x = 0; // 10000 times
else // 0 time
x = a - b;
we may implement this as:
start_sequence()
...
do_compare_rtx_jump (...)
emit_label (...)
emit_move_insn (...)
...
seq = get_insns ();
end_sequence()
rebuild_jump_lables ()
commit_edge_insertsion()
However, it seems there's no place to update edge profiling
information in the above codes, even though we know the branch
probabilities.
The same problem also exists in the value-profile.c, because it
changed the CFG too.
Is there any way to update edge profile? Thanks.
Qiong