eliminate global rdim_shared; just use scratch data

This commit is contained in:
Ryan Fleury
2026-03-09 11:56:43 -07:00
parent e2b9618101
commit 8db4a09941
3 changed files with 513 additions and 451 deletions
+6 -1
View File
@@ -2601,6 +2601,11 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params)
}
}
//- rjf: gather namespaces
{
}
//- rjf: store finalized type to this itype's slot
itype_type_ptrs[itype] = dst_type;
}
@@ -4358,7 +4363,7 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params)
{
rdim_type_chunk_list_concat_in_place(all_types__pre_typedefs_ptr, &syms_typedefs[idx]);
}
*all_types_ptr = all_types__pre_typedefs;
*all_types_ptr = *all_types__pre_typedefs_ptr;
}
lane_sync();
all_locations = *all_locations_ptr;
File diff suppressed because it is too large Load Diff
-100
View File
@@ -60,106 +60,6 @@ struct RDIM_UnsortedJoinedLineTable
RDIM_LineRec *line_recs;
};
//- rjf: shared state bundle
typedef struct RDIM_Shared RDIM_Shared;
struct RDIM_Shared
{
RDIM_ScopeVMapBakeResult baked_scope_vmap;
RDIM_UnitVMapBakeResult baked_unit_vmap;
RDIM_GlobalVMapBakeResult baked_global_vmap;
RDIM_BakePathTree *path_tree;
RDI_U64 line_tables_count;
RDI_U64 line_table_block_take_counter;
RDIM_LineTable **src_line_tables;
RDIM_UnsortedJoinedLineTable *unsorted_joined_line_tables;
RDIM_SortKey **sorted_line_table_keys;
RDIM_LineTableBakeResult baked_line_tables;
RDIM_BakeStringMapTight bake_strings;
RDIM_BakeIdxRunMap bake_idx_runs;
RDIM_StringBakeResult baked_strings;
RDIM_IndexRunBakeResult baked_idx_runs;
RDI_U64 *lane_name_map_node_counts[RDI_NameMapKind_COUNT];
RDI_U64 *lane_name_map_node_offs[RDI_NameMapKind_COUNT];
RDI_U64 name_map_node_counts[RDI_NameMapKind_COUNT];
RDI_U64 total_name_map_node_count;
RDIM_TopLevelNameMapBakeResult baked_top_level_name_maps;
RDIM_NameMapBakeResult baked_name_maps;
RDIM_BakeSrcLineMap *bake_src_line_maps;
RDI_U64 bake_src_line_map_take_counter;
RDIM_SortKey **bake_src_line_map_keys;
RDI_U64 *lane_chunk_src_file_num_counts; // [lane_count * src_file_chunk_count]
RDI_U64 *lane_chunk_src_file_voff_counts; // [lane_count * src_file_chunk_count]
RDI_U64 *lane_chunk_src_file_map_counts; // [lane_count * src_file_chunk_count]
RDI_U64 *lane_chunk_src_file_num_offs; // [lane_count * src_file_chunk_count]
RDI_U64 *lane_chunk_src_file_voff_offs; // [lane_count * src_file_chunk_count]
RDI_U64 *lane_chunk_src_file_map_offs; // [lane_count * src_file_chunk_count]
RDI_U64 *lane_chunk_src_file_checksum_counts[RDI_ChecksumKind_COUNT]; // [lane_count * src_file_chunk_count]
RDI_U64 *lane_chunk_src_file_checksum_offs[RDI_ChecksumKind_COUNT]; // [lane_count * src_file_chunk_count]
U64 total_checksum_counts[RDI_ChecksumKind_COUNT];
RDI_U64 total_src_map_line_count;
RDI_U64 total_src_map_voff_count;
RDIM_ChecksumBakeResult baked_checksums;
RDIM_SrcFileBakeResult baked_src_files;
RDI_U64 *member_chunk_lane_counts; // [lane_count * udt_chunk_count]
RDI_U64 *member_chunk_lane_offs; // [lane_count * udt_chunk_count]
RDI_U64 *enum_val_chunk_lane_counts; // [lane_count * udt_chunk_count]
RDI_U64 *enum_val_chunk_lane_offs; // [lane_count * udt_chunk_count]
RDIM_UDTBakeResult baked_udts;
RDI_U64 *location_case_chunk_lane_counts; // [lane_count * (scope_chunk_count + procedure_chunk_count)
RDI_U64 *location_case_chunk_lane_offs; // [lane_count * (scope_chunk_count + procedure_chunk_count)
RDI_U64 total_location_case_count;
RDIM_LocationBlockBakeResult baked_location_blocks;
RDIM_LocationBakeResult baked_locations;
RDI_U64 *scope_local_chunk_lane_counts; // [lane_count * scope_chunk_count]
RDI_U64 *scope_local_chunk_lane_offs; // [lane_count * scope_chunk_count]
RDI_U64 *scope_voff_chunk_lane_counts; // [lane_count * scope_chunk_count]
RDI_U64 *scope_voff_chunk_lane_offs; // [lane_count * scope_chunk_count]
RDIM_ScopeBakeResult baked_scopes;
RDIM_ProcedureBakeResult baked_procedures;
RDI_U64 *constant_data_chunk_lane_counts; // [lane_count * constant_chunk_count]
RDI_U64 *constant_data_chunk_lane_offs; // [lane_count * constant_chunk_count]
RDIM_ConstantsBakeResult baked_constants;
RDIM_UnitBakeResult baked_units;
RDIM_TypeNodeBakeResult baked_type_nodes;
RDIM_GlobalVariableBakeResult baked_global_variables;
RDIM_ThreadVariableBakeResult baked_thread_variables;
RDIM_InlineSiteBakeResult baked_inline_sites;
RDIM_BakePathNode **baked_file_path_src_nodes;
RDIM_FilePathBakeResult baked_file_paths;
RDIM_TopLevelInfoBakeResult baked_top_level_info;
RDIM_BinarySectionBakeResult baked_binary_sections;
};
global RDIM_Shared *rdim_shared = 0;
internal RDIM_DataModel rdim_data_model_from_os_arch(OperatingSystem os, RDI_Arch arch);
internal RDIM_TopLevelInfo rdim_make_top_level_info(String8 image_name, Arch arch, U64 exe_hash, RDIM_BinarySectionList sections);
internal RDIM_BakeParams rdim_loose_from_rdi(Arena *arena, RDIM_SubsetFlags subset_flags, RDI_Parsed *rdi);