timings for individual compiler passes (in rc3)
ben at well-typed.com
Wed Apr 13 17:15:55 UTC 2016
Johannes Waldmann <johannes.waldmann at htwk-leipzig.de> writes:
> There is this (closed) https://ghc.haskell.org/trac/ghc/ticket/11653
> and it's landed in 8.rc3.
> Thats good, and I want to make an effort to use this.
> But how? Just "-v2"? This gives a lot of noise. And no summary?
Indeed, -v2 does produce a lot of noise. We considered adding a
dedicated -ftimings flag but ultimately decided that it wouldn't be
necessary. Afterall, the most obvious users of this functionality are
not end-users but tooling and compiler developers since the timings
themselves are quite tricky to interpret.
I think there are two likely use-cases for this functionality,
1. for long-term tracking of the performance of various compiler
subsystems on a set of stable benchmarks (e.g. nofib)
2. for precise characterization of the effects of optimizations on
individual compiler passes while working on the compiler
In both cases you'll likely want to feed the compiler's output through
some sort of analysis tool so I thought it wouldn't really be worth
cluttering the implementation with any sort of nice summarization.
Ömer has already  put together some nice tooling for extracting and
summarizing timings and I believe he is interested in continuing this
line of work. Perhaps you two should chat!
Finally, note that we still have a fair amount of work to do to verify
that the timings produced actually reflect the amount of work done by
each pass. Laziness makes this rather tricky.
The original feature request ticket (#11653) is one obvious place to
hang comments; this list is also appropriate.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 472 bytes
Desc: not available
More information about the ghc-devs