Commit Graph
19838 Commits
Author SHA1 Message Date
bplu4t2f 94ea51a5d1 XML hot path: Use an arena instead of strings_to_free. 2026-10-09 14:00:56 +02:00
bplu4t2f f1673a3140 Disable instrumentation for measurement (also when is awkward here :( bill what were you thinking) 2026-10-09 13:22:42 +02:00
bplu4t2f f25fc5b2a8 XML hot path: Instrumentation and some optimizations 2026-10-09 13:11:08 +02:00
bplu4t2f a252797538 Add comment for potential optimization 2026-10-08 23:11:48 +02:00
bplu4t2f 2d2cf5e581 strings.write_rune doesn't round-trip all the way through I/O to call append 2026-10-08 23:11:05 +02:00
bplu4t2f 40b68a7102 Experimental hot path optimization in XML test. 2026-10-08 23:09:37 +02:00
bplu4t2f bb5fe2173d Make math/big parsing huge radix 16 integers from strings way faster (big speedup to core tests in CI) 2026-10-08 18:02:45 +02:00
bplu4t2f db3224348a Speed up map tests 2026-10-08 16:11:31 +02:00
gingerBill 0e9f930983 Merge pull request #7823 from odin-lang/bill/debug-info
Debug Info Improvements
2026-10-08 13:55:21 +01:00
gingerBill 6bc36986d2 Keep the names of big endian types in CodeView and add RAD views to swap their bytes 2026-10-08 13:41:52 +01:00
gingerBill 311394cfbc Clean up odin_debugger.py 2026-10-08 13:32:11 +01:00
gingerBill 756e0daac0 Show #soa arrays, set-like maps, allocators and any values in the gdb and lldb printers 2026-10-08 13:20:11 +01:00
gingerBill 4d8e8aaf4a Mark optimized procedures, add assignment tracking, and add MD5 file checksums on LLVM 22+ 2026-10-08 12:28:21 +01:00
gingerBill 8109f1a401 Copy the lldb pretty printers into the .dSYM of macOS binaries built with -debug where lldb loads them from 2026-10-08 12:04:16 +01:00
gingerBill f689471c90 Embed the gdb pretty printers in the .debug_gdb_scripts section of ELF binaries built with -debug, and move the script next to the runtime it reads 2026-10-08 11:54:08 +01:00
gingerBill 5caf8b7408 Add gdb and lldb pretty printers for map, union, strings, slices, and dynamic arrays 2026-10-08 11:43:12 +01:00
gingerBill ba52d1485f Merge pull request #7821 from odin-lang/bill/7820
Fix #7820: keep only the origins of what a call's flow loads from memory of an unknown type in the escape analysis
2026-10-08 11:16:22 +01:00
gingerBill d0a5d4a8e2 Fix #7820: keep only the origins of what a call's flow loads from memory of an unknown type in the escape analysis 2026-10-08 11:14:39 +01:00
gingerBill 81842d44dc Improve RAD Debugger view information for unions, string16, and anything else need to be generated 2026-10-08 11:09:33 +01:00
gingerBill fa88124d6c Merge pull request #7819 from odin-lang/bill/atomics
Improved Atomic Analysis: Fences, Weak Compare-Exchange, Futex Wakes, and Volatile Memory Access
2026-10-08 10:56:38 +01:00
Jeroen van Rijn a961bb5ddb Merge pull request #7818 from bbodi/fix/sha3-init-round-start
Reset keccak_round_start in _sha3.init
2026-10-08 02:51:19 -07:00
gingerBill 535132a22e Add @(futex_parameter="name") 2026-10-08 10:46:58 +01:00
gingerBill 29f4b033df Describe bit_sets as flag enums on DWARF and typeid as an enum of the type table defined once alongside any, declare the element of #soa range loops 2026-10-08 10:42:43 +01:00
gingerBill 7b312ac696 Check for invalid enum kind cases with the atomic reporting 2026-10-08 10:29:26 +01:00
gingerBill 702533c4ef Warn on volatile accesses of what is accessed atomically, as a volatile access is not atomic 2026-10-08 10:23:44 +01:00
gingerBill 399b6d4a36 Name procedures and globals in debug info by package and enclosing procedure, with literals named by line, one shared name for all polymorphic instances, and exported and custom link names kept 2026-10-08 10:10:15 +01:00
gingerBill 9db7f49441 Warn on atomics on a local whose address is only taken by them, suggesting volatile_load/volatile_store 2026-10-08 10:09:06 +01:00
bbodi f7f3e63191 Reset keccak_round_start in _sha3.init
init left the round start untouched. A context that skipped zeroing
with `= ---`, or one reused after TurboSHAKE, kept a stale value, so
SHA-3 and SHAKE ran too few rounds and returned wrong hashes silently.
2026-10-08 11:02:47 +02:00
Jeroen van Rijn 4d09219ff4 Merge pull request #7616 from wardjm/fix/parse_int_overflow
Fixed strconv overflow noted in issue#7608.
2026-10-08 01:57:40 -07:00
gingerBill 216bcf7475 Split the debug types module into eight picked by a hash of each type's name, defined in parallel rounds and anchored by a union of pointers to its types 2026-10-08 09:48:40 +01:00
gingerBill 8dee146bf3 Warn on weak compare-exchanges whose success is ignored, futexes woken before they are written, and signal fences where a thread fence would pair; reject atomics on what may be misaligned for them 2026-10-08 09:46:14 +01:00
gingerBill 91ec3aa76b Make atomic fences only order what they may be reached after (or before), including through calls to the procedures with the relaxed accesses 2026-10-08 09:20:26 +01:00
gingerBill 0a4724602b Define record debug types once in a debug types module with forward declarations in every other module 2026-10-08 09:18:15 +01:00
gingerBill 8c692ad0e9 Give debug types unique identifiers, describe self-referencing procedure types per debug format, declare range loop variables once, and use DWARF 5 on Darwin and Linux 2026-10-08 08:56:39 +01:00
Jeffrey Ward c2684b43cb Added tests from issue 7608 comments.
Fixed "_" only and no digits. Now returns an error since this is effectively passing nothing to the parser.
2026-10-07 21:28:43 -04:00
gingerBill 6cfa3dafb7 Finalize debug info per module in parallel, and skip debug info work that was never used 2026-10-08 01:05:24 +01:00
gingerBill 35fdd3c499 Fix infinite recursion lowering procedure types that contain themselves 2026-10-08 00:26:40 +01:00
gingerBill b0c36ab7ca Merge pull request #7816 from odin-lang/bill/atomic-memory-ordering-pass
Atomic Memory Ordering and Futex Operation Passes
2026-10-07 23:36:22 +01:00
gingerBill d2d1fe8372 Remove the redundant t.flags += {.Joined} in _join on Unix, as it was already set atomically 2026-10-07 23:27:48 +01:00
gingerBill 71e6288049 Use relaxed ordering for the early load in futex_wait and futex_wait_with_timeout, as every caller acquires itself after waking 2026-10-07 23:19:25 +01:00
gingerBill ecedcbc0bf Add @(futex=.Wait) and @(futex=.Wake) with intrinsics.Futex_Operation, so the atomic analysis checks futex words, and use relaxed ordering for Atomic_Cond's counter 2026-10-07 23:18:02 +01:00
gingerBill bb9f0a2c47 Prefix the atomic analysis procedures with check_atomic_ 2026-10-07 22:54:59 +01:00
gingerBill 158d0a9d8d Replace the #+escape-analysis/#+atomic-analysis file tags with #+analysis which takes names and ! like #+vet 2026-10-07 22:50:20 +01:00
gingerBill 7571a2676f Use relaxed ordering for nbio's mpsc head counter and pool's destroy exchange, as their acquire paired with nothing 2026-10-07 22:44:36 +01:00
gingerBill b12195bebf Add an atomic memory ordering analysis (-no-atomic-analysis, #+atomic-analysis, #+no-atomic-analysis) warning where release or acquire ordering pairs with nothing, and -vet-atomic-access for plain reads of what is accessed atomically 2026-10-07 22:43:08 +01:00
gingerBill 7743370a2d Merge pull request #7815 from SOBEX/llvm-fake-use
Adds binding for `llvm.fake.use`
2026-10-07 22:13:03 +01:00
gingerBill 42ce435053 Merge pull request #7814 from BigBoyBarney/vet-help
Update -vet flag help message
2026-10-07 22:12:56 +01:00
gingerBill 711f08a641 Make is_type_lock_free follow what each target lowers without library calls, and reject atomics on types which are not lock-free 2026-10-07 21:58:32 +01:00
gingerBill ad685e1144 Compare floats by their bits in atomic compare-exchange; reject atomics on what is within a struct #packed 2026-10-07 21:50:16 +01:00
gingerBill 403738e5cd Merge pull request #7802 from odin-lang/bill/compiler-improvements-2026-10
Flow-based Escape Analysis of Stack Memory + Show where parapoly procedures and records were instantiated in errors within them
2026-10-07 21:19:06 +01:00