Re: [PATCH 00/14] Share DWARF partial symtabs between objfiles

Tom Tromey
2020-02-24T23:20:07Z

>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes:

>> 0 eeeb07c1120 Share DWARF partial symtabs
>> 1 597fab7df48 Move signatured_type::type to unshareable object
>> 2 9ec85b37d88 Split type_unit_group
>> 3 f4d2c85a250 Introduce dwarf2_enter_objfile and use it
>> 4 afcc2a6d028 Remove symtab links from dwarf2_psymtab and dwarf2_per_cu_quick_data
>> 5 11fad00951b Introduce dwarf2_unshareable and move die_type_hash
>> 6 49fe37ffefb Add objfile member to DWARF batons
>> 7 842794fd4d9 Add dwarf2_per_cu_data::index
>> 8 cbf63c32179 Fix a memory leak and remove an unused member
>> 9 fe38cf467e1 Add "objfile" parameter to two partial_symtab methods
>> 10 e0e096e6956 Convert IS_TYPE_UNIT_GROUP to method
>> 11 ad71f2eb272 Introduce dwarf2_per_objfile::obstack
>> 12 4a127c55a71 Simplify setting of reading_partial_symbols

Simon> I don't undersatnd why you say that patches #1-#5 won't be salvaged, I think
Simon> they will still be necessary. For example, #1 and #2 are still necessary to
Simon> take out objfile-specific parts from dwarf2_per_cu_data, aren't they?

Yeah, I suppose so. I think the goal should be to eliminate the
dwarf2_enter_objfile stuff, so I suppose really only one patch would be
wholly gone; and dwarf2_unshareable changed to sort of the "opposite"
patch.

Simon> objfile -> dwarf2_per_objfile -> dwarf2_shared_between_objfiles

Simon> I find the last one a bit long, although it's clear. I'm open to
Simon> any suggestions.

We talked on irc and thought dwarf2_per_bfd sounded ok, given that this
naming is already used for objfile data.

>> Also I have another patch here that adds a subclass of partial_symtab
>> for DWARF includes. I *think* this solves the need to wrap the
>> compunit_symtab pointer in an optional<>, though it remains hard to be
>> completely certain. I'll send that sometime soon, I think it could go
>> in separately.

Simon> I don't really know about that and the current work uses enough of my brain
Simon> cycles, so I could take a look, but only once we are done with the current
Simon> series (unless you think it impacts the current series).

If it could eliminate the optional, it would simplify some of the code.
I'll look at that a bit.

Tom