Corrupted Profile Information

djp@csc.uvic.ca djp@csc.uvic.ca
Fri Jan 27 00:05:00 GMT 2006


 I'm working on a series of profile-driven optimes with gcc-3.4.3.

 I need profile information available for the PRE phase (implemented in
gcc with gcse.c and lcm.c).

 However, gcc-3.4.3 does not provide profile information that early in the
compile, so I moved the call to `rest_of_handle_branch_prob()' (which in
turns calls branch_prob() which annotates the CFG with profile
information from gcda files) to above `rest_of_handle_gcse()'.

 For the most part, I seem to get good information. However, on certain
SPEC CPU 2000 benchmarks, the compiler stops with `counter mismatch'
errors and `counter contains illegal value' (typically negative value)
errors.

 I really need correct profile information before PRE. By moving
rest_of_handle_branch_prob() just before rest_of_handle_gcse() have I
violated some critical assumptions which is causing the profile
information to be occasionally corrupted ?

David P.



More information about the Gcc mailing list