On Wed, Apr 27, 2011 at 10:03 AM, Jan Hubicka <hubi...@ucw.cz> wrote:
>> >> -       else if (entry->checksum != checksum)
>> >> +       else if (entry->lineno_checksum != lineno_checksum
>> >> +                || entry->cfg_checksum != cfg_checksum)
>> >>           {
>> >>             error ("coverage mismatch for function %u while reading 
>> >> execution counters",
>> >>                    fn_ident);
>> >> -           error ("checksum is %x instead of %x", entry->checksum, 
>> >> checksum);
>> >> +           error ("checksum is (%x,%x) instead of (%x,%x)",
>> >> +                  entry->lineno_checksum, entry->cfg_checksum,
>> >> +                  lineno_checksum, cfg_checksum);
>> >
>> > Can't we give more informative message whether code changes or it seems to 
>> > be
>> > optimization options disprepancy?
>>
>> Good idea -- but to change the warning not the error here. For the
>> warning (which is promoted to error by default) currently it is:
>>
>> error: coverage mismatch for function xxxx while reading counter yyy.
>>  note: control flow checksum is aaa instead of bbb
>>
>> Could be:
>> error: function xxx's control flow does match its profile data (counter yyy).
>>   note: use -Wno-error=coverage-mismatch to tolerate the mismatch but
>> performance may drop if the function is hot.
>
> Well, I had more in mind giving diffent message for lineno checksum 
> difference than cfg checksum.
> But I agree that we probably don't want to output checksum numbers, those are 
> useless even for debugging.
> Probably could follow same warning/error rules as the main loading routine 
> whatever you converged
> to.
>

Sure.

Thanks,

David

> Honza
>

Reply via email to