UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
syms_aggregate_proc_map.c
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
4// NOTE(allen): Syms Procedure Aggregator Function
5
8 SYMS_ProfBegin("syms_group_aggregated_procedure_map");
10
11 SYMS_U64 unit_count = group->unit_count;
12
13 //- gather all procs
16 SYMS_U64 total_count = 0;
17 for (SYMS_UnitID uid = 1;
18 uid <= unit_count;
19 uid += 1){
21 SYMS_U64 *proc_ids = procs->ids;
22 SYMS_U64 proc_count = procs->count;
23
26 ua_node->u64 = proc_ids;
27 ua_node->count = proc_count;
28 total_count += proc_count;
29 }
30
31 //- setup spatial map
33 {
34 SYMS_String8 data = group->dbg_data;
35 SYMS_DbgAccel *dbg = group->dbg;
38 for (SYMS_UnitID uid = 1;
39 uid <= unit_count;
40 uid += 1, ua_node = ua_node->next){
42 SYMS_U64 *sid_ptr = ua_node->u64;
43 SYMS_U64 count = ua_node->count;
44 for (SYMS_U64 i = 0; i < count; i += 1, sid_ptr += 1){
47 proc_index += 1;
48 }
49 }
50 }
51
53
54 //- flatten procs into a usid array
55 SYMS_USIDArray procs = {0};
56 procs.usid = syms_push_array(arena, SYMS_USID, total_count);
57 procs.count = total_count;
58 {
59 SYMS_USID *usid_ptr = procs.usid;
61 for (SYMS_UnitID uid = 1;
62 uid <= unit_count;
63 uid += 1, ua_node = ua_node->next){
65 SYMS_U64 count = ua_node->count;
66 for (SYMS_U64 i = 0; i < count; i += 1){
67 usid_ptr->uid = uid;
68 usid_ptr->sid = *u64_ptr;
69 usid_ptr += 1;
70 u64_ptr += 1;
71 }
72 }
73 }
74
75 //- assemble result
76 SYMS_AggregatedProcedureMap result = {0};
77 result.procs = procs;
78 result.map = map;
79
82 return(result);
83}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition syms_aggregate_proc_map.h:9
SYMS_USIDArray procs
Definition syms_aggregate_proc_map.h:10
SYMS_SpatialMultiMap1D map
Definition syms_aggregate_proc_map.h:11
Definition syms_base.h:402
Definition syms_group.h:26
Definition syms_data_structures.h:78
Definition syms_data_structures.h:85
Definition syms_base.h:296
Definition syms_debug_info.h:228
SYMS_SymbolID * ids
Definition syms_debug_info.h:229
SYMS_U64 count
Definition syms_debug_info.h:230
Definition syms_base.h:248
SYMS_U64 * u64
Definition syms_base.h:250
Definition syms_base.h:280
Definition syms_debug_info.h:250
SYMS_USID * usid
Definition syms_debug_info.h:251
SYMS_U64 count
Definition syms_debug_info.h:252
Definition syms_debug_info.h:234
SYMS_API SYMS_AggregatedProcedureMap syms_aggregated_procedure_map_from_group(SYMS_Arena *arena, SYMS_Group *group)
Definition syms_aggregate_proc_map.c:7
SYMS_API SYMS_ArenaTemp syms_get_scratch(SYMS_Arena **conflicts, SYMS_U64 conflict_count)
Definition syms_base.c:694
#define syms_push_array(a, T, c)
Definition syms_base.h:561
#define SYMS_API
Definition syms_base.h:29
#define syms_push_array_zero(a, T, c)
Definition syms_base.h:564
#define SYMS_QueuePush(f, l, n)
Definition syms_base.h:220
#define syms_release_scratch
Definition syms_base.h:567
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
SYMS_API void syms_spatial_map_1d_loose_push(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose, SYMS_U64 val, SYMS_U64RangeArray ranges)
Definition syms_data_structures.c:251
SYMS_API SYMS_SpatialMultiMap1D syms_spatial_multi_map_1d_bake(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose)
Definition syms_data_structures.c:412
SYMS_U64 SYMS_UnitID
Definition syms_debug_info.h:77
#define SYMS_Arena
Definition syms_default_arena.h:61
#define SYMS_ProfEnd()
Definition syms_dev.h:212
#define SYMS_ProfBegin(str)
Definition syms_dev.h:209
SYMS_API SYMS_UnitAccel * syms_group_unit_from_uid(SYMS_Group *group, SYMS_UnitID uid)
Definition syms_group.c:283
SYMS_API SYMS_SymbolIDArray * syms_group_proc_sid_array_from_uid(SYMS_Group *group, SYMS_UnitID uid)
Definition syms_group.c:301
SYMS_API SYMS_U64RangeArray syms_scope_vranges_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DbgAccel *dbg, SYMS_UnitAccel *unit, SYMS_SymbolID id)
Definition syms_parser.c:1207
Definition syms_parser.h:30
Definition syms_parser.h:42