[LLVMdev] RFC: Binary format for instrumentation based profiling data
Diego Novillo
dnovillo at google.com
Thu Mar 13 05:48:19 PDT 2014
On Wed, Mar 12, 2014 at 9:09 PM, Justin Bogner <mail at justinbogner.com> wrote:
> Functions are represented by strings, determined by the part of the
> frontend that both generates and uses this data. In our case, these are
> generally whatever clang thinks of as the function's name, with minor
> details added to disambiguate names that aren't necessarily unique.
Why not just use mangled names here? No need to add minor details, nor
ad-hoc disambiguation. If you're already using mangled names, then I'm
not sure why we need disambiguating details.
> The counter data is simply an array of unsigned 64 bit values. Given an
> offset found in the index, a sequence follows:
>
> <function hash> <number of counters> <counters...>
>
> This is all of the data needed for a given function.
How are counters represented? Are these line numbers together with the
counter? Basic blocks? Edges?
I wonder if it would make sense to use the existing gcov format for
this. OTOH, we could provide a converter in the Profile library.
Thanks. Diego.
More information about the llvm-dev
mailing list