updating edge profiling

Pat Haugen pthaugen@us.ibm.com
Tue Jun 15 15:54:00 GMT 2004





qiongc@cse.unsw.edu.au wrote on 06/08/2004 08:07:21 AM:

> 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.


Following is what I recently proposed for fixing up value-prof.c

http://gcc.gnu.org/ml/gcc-patches/2004-05/msg01558.html

-Pat



More information about the Gcc mailing list