[PATCH][RFC] Statistics "infrastructure"
Richard Guenther
rguenther@suse.de
Sun Mar 16 09:33:00 GMT 2008
On Sun, 16 Mar 2008, Zdenek Dvorak wrote:
> Hi,
>
> > > > A statistics event consists of a function (optional), a statement
> > > > (optional) and the counter ID. I converted the counters from
> > > > tree-ssa-propagate.c as an example, instead of
> > > >
> > > > prop_stats.num_copy_prop++;
> > > >
> > > > you now write
> > > >
> > > > statistics_add ("copy propagations");
> > > >
> > > > (function and statement omitted, you might prefer #defines for strings
> > > > that you use multiple times).
> > >
> > > it would perhaps be better to use #defines with integer values? Also,
> > > it would be more consistent to have statistics.def similar to
> > > timevar.def for this. It would make creation of new counters a bit
> > > more difficult, but on the other hand, it would make it possible to
> > > classify the counters (by type of the counted operation/its
> > > expensiveness/...),
> >
> > The difficultness to add new counters is exactly why I didn't go
> > down that route. I expect this mainly used for experimentation
> > where it is IMHO inconvenient to go the .def route
>
> I thought of it more as an aid in debugging performance problems, as in,
> checking the dumps without introducing new statistics counters; in which
> case, having some description of what the counters mean and the metadata
> from the .def file would be useful.
>
> On the other hand, I agree that for the purpose that you suggest
> avoiding .def is better. Perhaps we could require that all the
> statistics strings are #defined and documented (and of course you can
> ignore this rule for the counters that you use for experimentation)?
Sure, we can even do a .def file for this purpose.
Richard.
More information about the Gcc-patches
mailing list