This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FDO usability patch -- cfg and lineno checksum


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

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]