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
4c3bb98c64
more determinism fixes
2025-09-05 15:19:29 -07:00
Ryan Fleury
096b631e8a
remove debugging code
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
27d4793900
fix line table building non-determinism
2025-09-05 15:19:29 -07:00
Ryan Fleury
f093ba9d35
fix src file path gathering determinism - was caused by interleaving each lane's non-inline and inline file paths - with different thread counts, these subdivisions will be different, so the order will change
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
69d0da9586
checkpoint on moving all of radbin to wavefront-style, first step to going wide on rdi baking as well
2025-09-05 15:19:28 -07:00
Mārtiņš Možeiko
d8bb8c76c6
add shadow stack register and read it in win32 thread context
2025-09-03 09:36:20 -07:00
Ryan Fleury
c35c14dadb
prefer last match to first in debug info, to gracefully avoid stale debug info in pdbs
2025-08-30 12:04:39 -07:00
Ryan Fleury
be5634c448
p2r2 - final conversion output bundling
2025-08-19 17:02:05 -07:00
Ryan Fleury
cdec8d5980
ctrl/demon: fastfail exception codes / notes; p2r2: finish symbol conversion etc. in new wavefront-style version
2025-08-19 16:47:12 -07:00
Nikita Smith
0656020ab3
sync primitive fixes
2025-08-18 19:26:35 -07:00
Nikita Smith
429ba8b080
helper for writing 32-bit address relocation
2025-08-18 19:09:32 -07:00
Nikita Smith
eee6a9c08a
natvis for obj list
2025-08-18 19:09:32 -07:00
Nikita Smith
b56ce72b7f
test cases for weak vs weak
2025-08-18 19:09:32 -07:00
Nikita Smith
257914da2f
handle alternate name directive after obj input
2025-08-18 19:09:32 -07:00
Nikita Smith
b19f73b93a
change unresolved weak symbol type to undefined
2025-08-18 19:09:32 -07:00
Nikita Smith
cdf515793f
stop walking on reaching an undefined symbol
2025-08-18 19:09:32 -07:00
Nikita Smith
0983915f40
oops forgot to init the delay load dll hash table and the established name string
2025-08-18 19:09:32 -07:00
Nikita Smith
b05237ceec
handle anti-dependency weak symbol
2025-08-18 19:09:32 -07:00
Nikita Smith
31b2b1c0f7
add replacement cases for weak vs. undefined and vice versa
2025-08-18 19:09:32 -07:00
Nikita Smith
873aa475e8
update tests to conform to new linking rules
2025-08-18 19:09:32 -07:00
Nikita Smith
1bca83610f
changed symbol search logic to run in three steps: undefined, weak,
...
and anti-dependency weak, allowing linking to proceed only after
symbols from previous step are added to the symbol table
this solves the problem of anti-dependency symbols because they are
searched in libraries if the dependency is unresolved weak symbol
2025-08-18 19:09:32 -07:00
Nikita Smith
e1786d0a11
discard delay loads in the config before they get to link context builder
2025-08-18 19:09:32 -07:00