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

Tom Tromey
2020-02-24T03:22:47Z

Tom> Take a look at my branch, t/reorganize-dwarf-code-sharing-3.
Tom> I rearranged it to move all the "unshared" stuff to the end, so there
Tom> should be less to fix up (though I see now I neglected to move the baton
Tom> patch earlier).

I made this change, so now the branch looks like (order is reversed from
how git send-email would send it):

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

Basically I think switching the sharing would start at patch #5, and
then parts of patch #0 would be salvaged, but not most of the rest of
patches #1-#5.

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.

Tom