[PATCH,RFC 0/3] Support for CTF in GCC
Richard Biener
richard.guenther@gmail.com
Mon Jun 3 10:02:00 GMT 2019
On Fri, May 31, 2019 at 9:17 PM Indu Bhagat <indu.bhagat@oracle.com> wrote:
>
>
>
> On 05/24/2019 02:26 AM, Richard Biener wrote:
>
> Currently, it does look like CTF for possibly to-be-omitted symbols will be
> generated... I assume even DWARF needs to handle this case. Can you point me to
> how DWARF does this ?
>
> It emits the debug information. DWARF outputs a representation of the source,
> not only emitted objects. We prune some "unused" bits if the user prefers us
> to do that but we do not omit information on types or decls that are used in
> the source but later eventually optimized away.
>
> It seems to me that linker support to garbage collect
> unused entries would be the way to go forward (probably easy for the
> declarations
> but not so for the types)?
>
> Hmm, garbage collecting unused types in linker - Let me get back to you on
> this. It does not look easy. Decl should be doable though.
>
> For example DWARF has something like type units that can be refered
> to via hashes. GCC can output those into separate sections and I can
> envision outputting separate debug (CTF) sections for each declaration.
> The linker could then merge sections for declarations that survived
> and pick up all referenced type sections. Restrictions on ordering
> for CTF may make this a bit difficult though, essentially forcing a
> separate intermediate "unlinked" format and the linker regenerating
> the final one. OTOH CTF probably simply concatenates data from
> different CUs?
>
> Yes, I cannot see this happening with CTF easily without some format changes.
>
> At link-time, there needs to be de-duplication of CTF types across CUs. This
> linker component needs work at this time, although we do have a working
> prototype.
>
> Regarding the type units in DWARF, are the shared/common types duplicated
> across the type units ? If not duplicated, how are the referenced types
> maintained/denoted across type units ?
I think type units can refer to each other just fine but the linker will not
split them up further, just throw away duplicates.
Richard.
> Thanks!
> Indu
>
More information about the Gcc-patches
mailing list