updating edge profiling
Qiong Cai
qiongc@cse.unsw.edu.au
Tue Jun 8 13:07:00 GMT 2004
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
More information about the Gcc
mailing list