Page MenuHomePhabricator

[SymbolFilePDB] Rewrite ParseTypes method

Authored by asmith on Mar 8 2018, 8:33 AM.



The types for the compiland's children are parsed when parsing types for a PDB compiland. Global types also need to be parsed but unfortunately PDBs do not have compiland information about each global type. So we parse them all on the first call to ParseTypes.

If a sc.function is provided then parse the types for that function. Otherwise parse the types for the overall sc.comp_unit.

The ParseTypes method can be very slow if a program has a long list of compile units containing needed modules. Debugging clang-cl with lldb will show the problem.

Diff Detail

Event Timeline

asmith created this revision.Mar 8 2018, 8:33 AM
zturner accepted this revision.Mar 13 2018, 10:30 AM
This revision is now accepted and ready to land.Mar 13 2018, 10:30 AM
asmith closed this revision.Mar 13 2018, 9:07 PM