Commit Graph

50 Commits

Author SHA1 Message Date
Ryan Fleury ee8dc27428 location data / location block baking 2025-09-05 15:19:30 -07:00
Ryan Fleury cc9f45299a eliminate separate chunk list for location cases 2025-09-05 15:19:30 -07:00
Ryan Fleury fa05bbf2a5 udt member/enum-val layout & nested baking; use rio to pre-fault all commits 2025-09-05 15:19:30 -07:00
Ryan Fleury a84142ed77 re-nest enum vals & members into udts; we want to keep the building API flexible with order of member building, and we can assume ~statistically-uniform distribution across all udts, so it makes more sense to just parallelize on udts, and pay the small cost of an upfront per-lane layout. 2025-09-05 15:19:30 -07:00
Ryan Fleury 8b83e5ef48 more non-determinism & bug fixes in name map & idx run map building 2025-09-05 15:19:29 -07:00
Ryan Fleury 27f2acd45d further progress/fixes on pdb -> rdi determinism 2025-09-05 15:19:29 -07:00
Ryan Fleury 6234fb0c49 fix incorrect scope voff serialization offsets 2025-09-05 15:19:29 -07:00
Ryan Fleury 955f033043 fix incorrect idx run baking; slots need to be laid out based on *idx counts*, rather than *value counts*! 2025-09-05 15:19:29 -07:00
Ryan Fleury e276ce4fb3 stub out src file baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 57125fee1b eliminate helpers from string map baking; no point in extra entry points for partial bakes 2025-09-05 15:19:29 -07:00
Ryan Fleury 2f9006bb8a bugfix name map baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 46ac437e86 name map baking / serialization 2025-09-05 15:19:29 -07:00
Ryan Fleury 92f24a043d idx runs baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 55b05301a4 expand scope vmap sorting -> all vmaps; do final vmap bakes; do first pass of scope (1 scope -> many locals, many voffs) layout / baking 2025-09-05 15:19:29 -07:00
Ryan Fleury cc0d707eb2 eliminate 'lane groups', since we can go wide on the sorts now 2025-09-05 15:19:29 -07:00
Ryan Fleury 1d7cd4f4d2 cleanup / radix sort experimentation 2025-09-05 15:19:29 -07:00
Ryan Fleury a44fbb0909 parallel radix sort for scope vmap baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 8fe4b3524f with sufficient threads, split baking threads into two groups: small # of threads to do expensive 'background' baking tasks, use the rest to do wide predictable baking stuff 2025-09-05 15:19:29 -07:00
Ryan Fleury f065ca33a2 location block baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 3b1aae44d0 location info baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 71cbdba76e remove old section requirement part of rdi, since all sections are now fixed; unit/scope/global vmap baking; collapse chunk list impls 2025-09-05 15:19:29 -07:00
Ryan Fleury e4ac3febd0 finish new udt baking; pull members & enum vals out of sub-udt lists, makes it much harder to layout & parallelize - instead pull them aside into their own chunk lists, require that UDTs just point to their first member; that way we can go wide when baking UDT members/enum-vals 2025-09-05 15:19:29 -07:00
Ryan Fleury b8414c4bfd type, first part of udt baking, string baking 2025-09-05 15:19:29 -07:00
Ryan Fleury ad4e57ec5a idx run baking 2025-09-05 15:19:29 -07:00
Ryan Fleury b22f6d3544 fully wide name map baking, joining, & sorting 2025-09-05 15:19:29 -07:00
Ryan Fleury 95e88e92e7 top-level info string baking 2025-09-05 15:19:29 -07:00
Ryan Fleury 618233eba1 checkpoint on new baker; globals, threads, inline sites 2025-09-05 15:19:29 -07:00
Ryan Fleury 595270bdab path tree baking 2025-09-05 15:19:29 -07:00
Ryan Fleury b169090dc6 checkpoint on new rdi baking; line table baking, string map building, plug in radsort over bad radix sort; arena tweak to aovoid unnecessary zeroes 2025-09-05 15:19:29 -07:00
Ryan Fleury 66ec3e834b rdi baking: wide line table gathering/joining & sorting 2025-09-05 15:19:29 -07:00
Ryan Fleury 31973ac2ac eliminate extra type stuff in rdim, organize / reslice dwarf conversion code, start reading through dwarf conversion 2025-08-04 14:19:17 -07:00
Ryan Fleury bee2570d39 fix double-load in radbin conversion path; fix incorrect mutation of potentially-nil trees when snapping to a file without a specific line; fix di_close path when work is occurring 2025-06-18 09:56:47 -07:00
Ryan Fleury 79bf3d8639 eliminate standalone programs for pdb -> rdi; dwarf -> rdi; pdb -> breakpad; sketch out 'radbin', unified cli frontend for dumping/converting/etc., plug in pdb -> rdi, pdb -> breakpad, & stub out dumper/dwarf 2025-06-09 15:40:48 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Ryan Fleury af4972a333 all constants evaluation; constant autocompletion; constant name string baking fix 2025-05-29 17:50:35 -07:00
Ryan Fleury 3513d6cfb9 first pass at rdi format constant value support 2025-05-29 16:37:36 -07:00
Ryan Fleury 70ae35cbd7 do not use worker thread arenas from main thread in rdi baker... 2025-05-14 09:51:46 -07:00
Nikita Smith e1ca449ccb revert type indices change 2025-05-05 10:19:13 -07:00
Nikita Smith e2266322d0 Revert "pass over PDB converter"
This reverts commit f1e88b5667.
2025-05-05 10:19:13 -07:00
Nikita Smith 3c7c2918f6 replace pointers to incomplete types in UDT members 2025-03-27 13:47:47 -07:00
Nikita Smith 53c889e5d3 switched to using base Arch enum for converting DWARF registers,
simplified top level building path
2025-03-27 13:47:46 -07:00
Nikita Smith 8f7ca178c2 bugfix incomplete type resolution hash table lookup 2025-03-26 12:21:55 -07:00
Nikita Smith a63254b70d merged rdim_help.c into rdim_local.c 2025-03-26 12:19:16 -07:00
Nikita Smith 7d5110e752 take into account null type slot 2025-03-26 12:18:47 -07:00
Nikita Smith 344cd8ffbf use djb2 hash for now 2025-03-17 14:20:40 -07:00
Nikita Smith f1e88b5667 pass over PDB converter
- moved incomplete type resolution from the converter to RDI make helper
  layer so we don't need to duplicate code in DWARF converter
- changed code for building basic types to handle various data models
2025-03-13 23:04:40 -07:00
Nikita Smith 44249f35fc pass over the make RDI library
- Handle type layout in the library so converts simply
  define type graph and let the library handle DAG layout.
- Changed location baking. For now the library waits for scope, procs,
  global vars, and thread vars steps to serially finish because
  of common dependency on location sections, we need to parallel for each step.
- Changed encoded offset size for RDI_EvalOp_FrameOff to 8 bytes
  (1 byte is not enough to cover all cases)
- Added frame base location to RDI_Procedure (WASM encodes frame base
  as an index into a global array and so we have to resolve the base
  at runtime).
2025-03-10 16:49:54 -07:00
Nikita Smith 8b4f97223e moved async bakers from PDB converter to a stand-alone file to reuse
them in DWARF converter
2025-03-03 17:09:01 -08:00
Ryan Fleury b18e437337 git normalize all files 2024-07-26 11:13:47 -07:00
Ryan Fleury c1764cee07 adjust builds to new rdi library setup 2024-06-01 19:24:46 -07:00