p2r: hoist comp unit contributions bucketing out from per-unit path

This commit is contained in:
Ryan Fleury committed 2025-06-04 13:23:56 -07:00
1 parent 0512b61d95
commit 3e1bc21f95
5 files changed
+142 -487

No files matched your search

+17 -28
View File
@@ -131,6 +131,21 @@ struct P2R_CompUnitContributionsParseIn
COFF_SectionHeaderArray coff_sections;
};
//- rjf: comp unit contribution table bucketing by unit
typedef struct P2R_CompUnitContributionsBucketIn P2R_CompUnitContributionsBucketIn;
struct P2R_CompUnitContributionsBucketIn
{
U64 comp_unit_count;
PDB_CompUnitContributionArray contributions;
};
typedef struct P2R_CompUnitContributionsBucketOut P2R_CompUnitContributionsBucketOut;
struct P2R_CompUnitContributionsBucketOut
{
RDIM_Rng1U64ChunkList *unit_ranges;
};
////////////////////////////////
//~ rjf: Conversion Data Structure & Task Types
@@ -196,7 +211,7 @@ struct P2R_UnitConvertIn
PDB_Strtbl *pdb_strtbl;
COFF_SectionHeaderArray coff_sections;
PDB_CompUnit *comp_unit;
PDB_CompUnitContributionArray *comp_unit_contributions;
RDIM_Rng1U64ChunkList comp_unit_ranges;
CV_SymParsed *comp_unit_syms;
CV_C13Parsed *comp_unit_c13s;
P2R_SrcFileMap *src_file_map;
@@ -219,28 +234,6 @@ struct P2R_SrcFileSeqEquipIn
RDIM_LineTableChunkList line_tables;
};
//- rjf: units conversion tasks
typedef struct P2R_UnitsConvertIn P2R_UnitsConvertIn;
struct P2R_UnitsConvertIn
{
PDB_Strtbl *pdb_strtbl;
COFF_SectionHeaderArray coff_sections;
PDB_CompUnitArray *comp_units;
PDB_CompUnitContributionArray *comp_unit_contributions;
CV_SymParsed **comp_unit_syms;
CV_C13Parsed **comp_unit_c13s;
P2R_SrcFileMap *src_file_map;
};
typedef struct P2R_UnitsConvertOut P2R_UnitsConvertOut;
struct P2R_UnitsConvertOut
{
RDIM_UnitChunkList units;
RDIM_LineTableChunkList line_tables;
RDIM_LineTable **units_first_inline_site_line_tables;
};
//- rjf: link name map building tasks
typedef struct P2R_LinkNameMapBuildIn P2R_LinkNameMapBuildIn;
@@ -383,6 +376,7 @@ ASYNC_WORK_DEF(p2r_symbol_stream_parse_work);
ASYNC_WORK_DEF(p2r_c13_stream_parse_work);
ASYNC_WORK_DEF(p2r_comp_unit_parse_work);
ASYNC_WORK_DEF(p2r_comp_unit_contributions_parse_work);
ASYNC_WORK_DEF(p2r_comp_unit_contributions_bucket_work);
////////////////////////////////
//~ rjf: Unit Source File Gathering Tasks
@@ -394,11 +388,6 @@ ASYNC_WORK_DEF(p2r_gather_unit_src_file_work);
ASYNC_WORK_DEF(p2r_unit_convert_work);
////////////////////////////////
//~ rjf: Units Conversion Tasks
ASYNC_WORK_DEF(p2r_units_convert_work);
////////////////////////////////
//~ rjf: Source File Sequence Equipping Task