Commit Graph
303 Commits
Author SHA1 Message Date
gingerBill cbcf315184 Generate a package with much more code than a 32nd of all of it in several modules of contiguous files, estimated by the bodies of its used procedures, as each module is generated by one thread 2026-10-02 16:11:18 +01:00
gingerBill 03852e7af8 Generate each global's initialization in its own block of the startup procedure; generate the procedure literals reached from the initializations of globals in their own package's module rather than the default module 2026-10-02 15:36:04 +01:00
gingerBill 40f3df53bb Merge pull request #7694 from odin-lang/bill/multithread-global-decls
Make global checking codegen order-independent
2026-10-01 15:36:48 +01:00
gingerBill 38fa57e907 Make global checking and codegen order-independent 2026-10-01 15:01:14 +01:00
Mihail Moskov 8d745e8288 fixes the nocapture attribute on llvm >= 21 2026-09-30 17:10:18 +03:00
gingerBill 3f518fd130 Merge pull request #7602 from corleypc/lifetime-markers
Adds lifetime markers for named locals
2026-09-29 17:44:06 +01:00
gingerBill 6653101e61 Fix race condition with unlocking something too early 2026-09-29 16:46:46 +01:00
corley bac6130710 lifetime markers for named locals 2026-09-20 15:55:26 +03:00
Mihail Moskov 74ac336ef1 fixes -o:size 2026-08-24 12:53:05 +03:00
mo 23bd3cd927 detect invalid block size caused by a void type
Fixes #7008

When a union variant includes a pointer to a forward type, `lb_sizeof`
returns 0 for the size of the block. This causes an extra padding word
to be added to the llvm type, causing a size_of and type_of mismatch.

The fix detects the 0 size and falls back to using `type_size_of` on
the first variant.
2026-08-21 21:58:21 +12:00
kalsprite cd8fc51efc codegen worker must not exit process with running siblings 2026-08-19 13:44:32 -07:00
gingerBill 645b57be9f Merge pull request #7327 from kalsprite/abi_conformance
ABI Conformance Harness + Fixes
2026-08-17 16:28:01 +02:00
Jeroen van Rijn a0b475eef9 Merge pull request #7361 from ssenthilnathan3/fix/recursive-soa-sigbus
Fix: SIGBUS/segfault when compiling recursive #soa slice/dynamic array types
2026-08-17 13:16:18 +02:00
Senthilnathan f6f686392a Merge branch 'master' into fix/recursive-soa-sigbus 2026-08-17 12:53:33 +05:30
Senthilnathan 4fe5719007 Fix SIGBUS/segfault when compiling recursive #soa slice/dynamic array types 2026-08-17 12:48:41 +05:30
corley de9d6d7dcc Reenables LLVMSetUnnamedAddress for global constants folding 2026-08-14 23:12:25 +03:00
kalsprite 98e580404a pack structs whose member alignment LLVM would raise above the target cap
arm64: return a narrow bare vector as itself, not coerced to an integer
2026-08-13 21:52:34 -07:00
corley 87912a8b88 fixes range loop over array elements in soa containers 2026-08-11 03:20:13 +03:00
corley e374541599 fixes chained indexing for soa containers with array element type 2026-08-09 22:23:32 +03:00
corley 7b45adf8e9 fixes swizzling for array elements in soa arrays/slices 2026-08-09 03:17:04 +03:00
gingerBill 9914a57fc7 Add intrinsics.soa_copy_from_slice and use it within _append_soa_elems replacing the old handwritten unrolled approach 2026-08-03 14:41:04 +01:00
Franz cd577b2eef Shrink lock region of func_raw_types_mutex to avoid deadlock. 2026-07-15 23:14:24 +02:00
Isabella Basso 43923eb3cb compiler: fix constant aggregate rebuild
fixes: #7005
2026-07-15 05:29:38 -03:00
Jeroen van Rijn 6154d5c577 Further LLVM 14 support removal. 2026-06-30 21:16:48 +02:00
gingerBill 62511914de When inserting a constant union into a struct literal, rebuild the struct to be non-named with llvm_const_insert_value_with_rebuild 2026-06-30 12:16:21 +01:00
gingerBill e24bbb813c Merge branch 'master' into bill/constant-union-fixes 2026-06-29 13:02:12 +01:00
gingerBill b9a9846b7c Fix constant union stuff against tests 2026-06-29 13:00:44 +01:00
gingerBill 42f681baff Revert some of the union changes 2026-06-29 12:18:40 +01:00
gingerBill 2f3174fe10 Fix llvm_const_cast with constant union literals 2026-06-29 11:41:27 +01:00
gingerBill e227c736e6 Fix #6786 2026-06-29 10:49:29 +01:00
gingerBill 2aea1d13f1 Improve lb_copy_bits 2026-06-22 12:55:50 +01:00
gingerBill 8971e0f1ec Fix shifting buf in lb_copy_bits 2026-06-22 12:55:45 +01:00
gingerBill 900ebd6b5b Heavily improve reading and writing to bit fields 2026-06-22 12:55:29 +01:00
A1029384756 8bd95d4082 [stack-canaries] fixed stack canaries on arm linux 2026-06-13 01:52:19 -04:00
A1029384756 da742fc526 [no-plt] enable no-plt behavior on linux arm64 and amd64 targets 2026-06-08 10:58:05 -04:00
Franz Hoeltermann f43b604eb3 Fix #no_bounds_check (previously broken by fc41e4414)
arr[:end] expressions would previously emit bounds checks even
with #no_bounds_check, breaking spall
2026-04-10 02:21:36 +02:00
Jeroen van Rijn c29fd7f872 Merge pull request #6436 from nathanchere/patch-1
Update build_odin.sh to support LLVM 22
2026-03-19 19:18:31 +01:00
Nathan Chere c2e42fe455 Remove deprecated LLVMGetGlobalContext calls 2026-03-18 21:11:12 +01:00
gingerBill 04cb889aed Begin interning ScopeMap strings 2026-03-17 11:04:32 +00:00
gingerBill 1744f57d01 Use permanent_alloc_item directly rather than through the gb_alloc_item generic interface 2026-03-16 16:03:27 +00:00
gingerBill fc41e44140 Improve bounds checking to minimize its need 2026-03-16 14:29:44 +00:00
gingerBill 0bf2d01a04 Work on improving bounds checking with constant known indices and lb_add_local_generated 2026-03-16 14:06:23 +00:00
gingerBill 38d7f45e64 Fix race condition with code_gen_module 2026-03-15 21:35:02 +00:00
gingerBill c51391f8cb Fix #5129 2026-03-15 17:15:16 +00:00
gingerBill f1dbe9c242 [dynamic; N]T proof of concept: fixed capacity dynamic array (akin to small_array.Small_Array(N, T)) 2026-03-11 16:46:33 +00:00
Jesse MeyerandClaude Opus 4.5 1a7f78b665 Add ThinLTO support via -lto:thin and -lto:thin-files flags
- Add -lto:thin and -lto:thin-files CLI flags with validation
- Emit LLVM bitcode (.bc) instead of object files when LTO is enabled
- Pass -flto=thin and -flto-jobs to clang/lld linkers
- Guard linkage corrections to skip declarations without definitions
  (required for LTO where declarations appear across modules)
- Allow module-per-file with LTO even at higher optimization levels

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 09:04:53 -05:00
gingerBill 93d7e2a452 Add globaldynamic thread_local model (same as the current default) 2025-12-30 13:08:30 +00:00
Jeroen van Rijn faa9222fef Set minimum #load(file, type) alignment to 16 bytes 2025-10-15 18:04:24 +02:00
Username-Leon 4dd6bb2e87 Merge branch 'master' of https://github.com/LeonardoTemperanza/Odin 2025-10-15 15:30:32 +02:00
Username-Leon e10093bd99 Fix wrong alignment for typed load directive. 2025-10-15 15:30:06 +02:00