Nikita Smith and Ryan Fleury
afd454b41f
fix DBI SC image-section range mapping
...
Log and skip section contributions that fail to map into the linked image.
Keep a file-range-to-section-number map so compact file ranges produce the
correct DBI section numbers.
2026-07-27 14:47:12 -07:00
Nikita Smith and Ryan Fleury
541727b819
debug log unresolved symbols specified in .llvm_addrsig
2026-07-27 14:47:11 -07:00
Nikita Smith and Ryan Fleury
3eeae8d365
enable binary for stdout and stderr to bypass CRLF mangling issues in
...
captured output under build systems
2026-07-27 14:47:10 -07:00
Nikita Smith and Ryan Fleury
83c55aebdc
check that __imp_* archive symbols are import members before applying
...
import queue flags to the member
2026-07-27 14:47:09 -07:00
Nikita Smith and Ryan Fleury
941b8a011e
duplicate identical search aliases are not an error case
2026-07-27 14:47:09 -07:00
Nikita Smith and Ryan Fleury
d34e1a7802
implement /OPT:ICF
...
Add identical COMDAT folding using a color-refinement over foldable
read-only sections. Hash section contents, relocation targets, and target
colors until partitions stabilize, then redirect folded COMDAT symlinks
and discard duplicate sections.
Honor .llvm_addrsig via /LLVM_ADDRSIG so address-significant sections
are not folded, keep separate color space for code, unwind info, and
MSVC vftables, and update COMDAT symbol/section mapping after folding.
Add linker tests covering function folding, relocation-sensitive folds,
alignment, color-space separation, symlink chains, .llvm_addrsig,
pdata/xdata, and C++ ICF cases.
2026-07-27 14:47:08 -07:00
Nikita Smith and Ryan Fleury
1ea9fae835
debug report live stats after /OPT:REF pass
2026-07-27 14:47:08 -07:00
Ryan Fleury
62328cea3f
checkpoint on text patches
2026-07-27 14:47:07 -07:00
Ryan Fleury
20cd955cc9
eval2: first pass at type_key -> string path
2026-07-27 14:47:06 -07:00
Ryan Fleury
0963f4a6de
const/volatile/unsigned/signed type operators
2026-07-27 14:47:06 -07:00
Ryan Fleury
78d12eb914
custom module loads -> support manually specifying pdb path
2026-07-23 20:28:52 -07:00
Ryan Fleury
b0841ff2da
first pass at custom load-module exception (long term for JIT)
2026-07-23 20:22:54 -07:00
Ryan Fleury
16c447bb79
eval2: leaf bytecode in ir tree
2026-06-28 07:36:24 -07:00
Ryan Fleury
96cfb441fd
correctly use command titles in native file explorer
2026-06-27 12:07:24 -07:00
Ryan Fleury
0e2b4ac5e7
ui discoverability adjustments
2026-06-27 06:21:31 -07:00
Ryan Fleury
969851b6f0
flip NO_ASYNC; turn on as needed, if a layer requiring it is included
2026-06-27 04:54:30 -07:00
Ryan Fleury
410a8e3afa
eval2: function pointer type parsing/compiling
2026-06-27 04:43:58 -07:00
Ryan Fleury
cae9754099
eval2: fix parsing task popping rules, still give chance to rhs when popping tasks in all cases
2026-06-27 04:25:05 -07:00
Ryan Fleury
b704e797e2
notes
2026-06-27 03:50:17 -07:00
Ryan Fleury
773e6554dc
cycle detection in fully qualified string generation
2026-06-26 20:35:50 -07:00
Ryan Fleury
fdbcf7ccdc
eval2: first pass at c recursive type expression parsing
2026-06-26 16:19:19 -07:00
Ryan Fleury
f1f654ecfd
eval2: simplify expression parsing info, allow child reversal (for parsing non-canonical expression orders into canonical shapes, e.g. Rust-style casts like 123 as float32 -> cast(float32, 123); ptr/array type operators, etc./
2026-06-26 13:20:38 -07:00
Ryan Fleury
60b266a1cc
support size_of and type_of in clike expressions
2026-06-26 11:28:01 -06:00
Ryan Fleury
9491fdf5c2
eval2: split out expression kinds from parse styles of expressions - lets us separate semantic expression tree from frontend, so that we can easily switch frontend
2026-06-26 11:22:43 -06:00
Ryan Fleury
bcbc5e4a2a
eval2: macro argument expression tree parsing
2026-06-26 10:07:02 -06:00
Ryan Fleury
d7393b2f65
eval2: split string -> expr compilation path into frontend / middle end - string -> expr, where expr is a loose structural syntax tree (where we can get macros and stuff without doing typechecking etc.), and expr -> irtree, where irtree is the usual typed / typechecked / ir structured representation - preserve minimal identifier resolution path for parser, but move most resolution things to the middle-end
2026-06-25 15:48:14 -07:00
Ryan Fleury
c2b74260ef
eval2: opkind -> exprkind, prepare for exprs being looser
2026-06-25 13:58:03 -07:00
Ryan Fleury
6b52d68c62
eval2 checkpoint: type operations, constructed types, checkpoint before splitting back to frontend / compiler split - we need to do things with the parse tree that we can't with an ir tree
2026-06-25 13:50:16 -07:00
Ryan Fleury
c1b3461709
eval2: switch to extrusive lists for expression lists - this lets us reuse expression trees. also solve strange isolated unload module events in win32 demon as well
2026-06-25 11:36:18 -06:00
Ryan Fleury
6c309038ce
dbg_engine: ctrl thread - be robust to strange duplicate module unload events
2026-06-25 09:51:13 -06:00
Ryan Fleury
9d651f4bd5
EpicGamesExt -> EpicGames
2026-06-25 09:08:52 -06:00
Ryan Fleury
38c1e2a414
eval2: ptr arithmetic & comparisons
2026-06-25 09:07:34 -06:00
Ryan Fleury
c817d1f136
eval2: type keys checkpoint
2026-06-24 20:39:53 -07:00
Ryan Fleury
296c851272
eval2 checkpoint: casts, function calls, expression-embedded identifier definitions, ternaries, compile-time ternaries
2026-06-24 16:29:57 -07:00
Ryan Fleury
6b841d9959
rdi_make: allow duplicates in bake name map insertions - they become extremely costly to check for, and we don't produce them anyways...
2026-06-24 07:20:06 -06:00
Ryan Fleury
1901e67f39
use synchronous reads for call stack computation, but extend artifact cache with the ability to say that a non-retryable failure occurred, so that we can fall back to stale call stacks
2026-06-23 20:00:57 -06:00
Ryan Fleury
3d6851c57a
rdi_from_Dwarf: count dependency counts correctly when using cached type content hashes
2026-06-23 16:07:53 -07:00
Nikita Smith and Ryan Fleury
4daefad31e
map GNU lib extension
2026-06-23 12:32:52 -07:00
Nikita Smith and Ryan Fleury
765b61152d
sort import library member refs by input index
2026-06-23 12:32:52 -07:00
Nikita Smith and Ryan Fleury
ad20900fc0
import hash table -> hash map
2026-06-23 12:32:51 -07:00
Nikita Smith and Ryan Fleury
8dbced6995
set flag on import member from the originally linked library, otherwise
...
on subsequent passes linker may queue same import
2026-06-23 12:32:50 -07:00
Nikita Smith and Ryan Fleury
84d025e940
force inline string compars
2026-06-23 12:32:50 -07:00
Ryan Fleury
98b7b5859c
rdi_from_dwarf: stub out pointers for now, cache as we go, merge type dependency count calculation with hash computation
2026-06-23 12:32:11 -07:00
Ryan Fleury
28009ec01e
rdi_from_dwarf type dedup hashing experiments checkpoint
2026-06-23 10:05:28 -07:00
Ryan Fleury
a425936f56
run_tests test data download -> fail if curl fails, follow http redirects
2026-06-22 14:42:50 -07:00
Ryan Fleury
fef78609d8
turn off d2r tests for now while new deduper is in progress; better tag skipping in dedup hashing
2026-06-22 14:25:25 -07:00
Martins Mozeiko and Ryan Fleury
401383bbd8
reorganize intrinsic includes to make clang happy
2026-06-22 14:21:01 -07:00
Ryan Fleury
76fa2be5a9
correct arch flags to clang
2026-06-22 13:45:53 -07:00
Ryan Fleury
c8c8e02ab0
Revert "use CL driver when compiling with clang on windows to simplify compile and link lines"
...
This reverts commit ba32d7fdec .
This causes tons of compatibility issues, some of which were preventing
Clang builds on specific Clang versions due to command line
incompatibility between lld-link and link.
2026-06-22 13:44:18 -07:00
Ryan Fleury
e2430fa23e
remove redundant incs of xxhash - undef cpuid macro before xxhash is
...
included, so that we don't have conflicting definitions due to memfun
2026-06-22 13:43:19 -07:00