On Fri, May 31, 2019 at 9:17 PM Indu Bhagat <indu.bha...@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 >