| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Add docs for `-lto:<string>`; remove `-lld` and `-radlink` flags docs; with ↵dev-2026-02 | gingerBill | 11 days | 1 | -6/+26 |
| | | | | | `-lto` default to `-use-separate-modules` and `-linker:lld` | ||||
| * | Merge branch 'master' into lto-support | Jesse Meyer | 11 days | 21 | -82/+222 |
| |\ | |||||
| | * | Merge pull request #6220 from laytan/fix-lto-macos | gingerBill | 13 days | 2 | -1/+30 |
| | |\ | | | | | | | fix LTO on MacOS | ||||
| | | * | fix LTO on MacOS | Laytan Laats | 13 days | 2 | -1/+30 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If no `-minimum-os-version` is given, ignore the `override-module` warnings. The user not using, `-minimum-os-version` opts you into linker warnings about target versions. If a `-minimum-os-version` is provided, normalize it to a full version `11` to `11.0.0` for example. The linker seems to want that when doing LTO. | ||||
| | * | | support -> supported | Jeroen van Rijn | 13 days | 2 | -2/+2 |
| | |/ | |||||
| | * | Add `intrinsics.count_trailing_ones` and `intrinsics.count_leading_ones` | gingerBill | 13 days | 4 | -0/+45 |
| | | | |||||
| | * | Comment out `t->Struct.are_offsets_being_processed.load()` | gingerBill | 13 days | 1 | -3/+3 |
| | | | |||||
| | * | Move `return true;` to after the if check | gingerBill | 13 days | 1 | -2/+2 |
| | | | |||||
| | * | Remove unneeded mutex in `hash_exact_value` | gingerBill | 13 days | 1 | -5/+0 |
| | | | |||||
| | * | Add parent mutex lock for `scope_insert_with_name` | gingerBill | 13 days | 1 | -0/+3 |
| | | | |||||
| | * | Merge pull request #6215 from odin-lang/bill/fix-data-races-2026-02 | gingerBill | 13 days | 12 | -57/+92 |
| | |\ | | | | | | | Fix numerous data races | ||||
| | | * | Revert `mutex_lock` logicbill/fix-data-races-2026-02 | gingerBill | 13 days | 1 | -3/+3 |
| | | | | |||||
| | | * | Fix `mutex_lock` | gingerBill | 13 days | 1 | -1/+1 |
| | | | | |||||
| | | * | Move `alignas` to before name | gingerBill | 13 days | 1 | -1/+1 |
| | | | | |||||
| | | * | Use mutex striping for `add_type_and_value` | gingerBill | 13 days | 2 | -10/+29 |
| | | | | |||||
| | | * | Make `Entity.parent_proc_decl` atomic | gingerBill | 13 days | 3 | -6/+8 |
| | | | | |||||
| | | * | Make `defer_use_checked` and `where_clauses_evaluated` atomic | gingerBill | 13 days | 3 | -11/+11 |
| | | | | |||||
| | | * | Make `Entity.code_gen_*` atomic | gingerBill | 13 days | 1 | -2/+2 |
| | | | | |||||
| | | * | Make atomic `variant_block_size` and `tag_size` in `TypeUnion` | gingerBill | 13 days | 1 | -12/+12 |
| | | | | |||||
| | | * | Use `compare_exchange_strong` `mutex_lock` on non-windows sytems | gingerBill | 13 days | 1 | -4/+4 |
| | | | | |||||
| | | * | Mock out TSAN_* usage in thread_pool.cpp | gingerBill | 13 days | 1 | -0/+14 |
| | | | | |||||
| | | * | Use `std::atomic` for `Ast.viral_state_flags` and `Ast_Ident.entity` | gingerBill | 13 days | 3 | -14/+14 |
| | | | | |||||
| | * | | Merge pull request #6216 from odin-lang/bill/debug-info-fixes | gingerBill | 13 days | 6 | -12/+43 |
| | |\ \ | | | | | | | | | Debug Info Fixes | ||||
| | | * | | Fix positions for debug locations in `defer`, loops, and `switch` clauses | gingerBill | 13 days | 4 | -4/+27 |
| | | | | | |||||
| | | * | | Add case for completeness | gingerBill | 13 days | 1 | -0/+2 |
| | | | | | |||||
| | | * | | Fix debug info | gingerBill | 13 days | 1 | -8/+13 |
| | | | | | |||||
| | | * | | Move `values` construction to after padding has been set | gingerBill | 13 days | 1 | -1/+2 |
| | | |/ | |||||
| | * | | Fix #6202 | gingerBill | 13 days | 1 | -0/+2 |
| | | | | |||||
| | * | | Add ThinLTO support via -lto:thin and -lto:thin-files flags | Jesse Meyer | 14 days | 5 | -7/+78 |
| | |/ | | | | | | | | | | | | | | | | | | | | | - 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> | ||||
| * | | Fix Windows LTO: preserve required procedures with llvm.used | Jesse Meyer | 11 days | 2 | -9/+33 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Windows with LTO, required procedures with external linkage need to be added to @llvm.used to survive linker-level dead code elimination. LLVM may generate implicit calls to runtime builtins (e.g., __extendhfsf2 for f16 conversions) during instruction lowering, after the IR is finalized. Without @llvm.used, the linker discards these procedures before the implicit calls are generated. This adds required procedures to @llvm.used at creation time. The fix is Windows-specific; other platforms handle this correctly. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | ||||
| * | | Fix lld-link LTO jobs flag syntax on Windows | Jesse Meyer | 11 days | 1 | -1/+1 |
| | | | | | | | | | | | | | | | lld-link doesn't recognize /lldltojobs:N as a standalone flag and treats it as a file path. Use /opt:lldltojobs=N instead. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | ||||
| * | | Skip sanitizer IR passes when LTO is enabled | Jesse Meyer | 11 days | 1 | -8/+15 |
| | | | | | | | | | | | | | | | | | | | | | | | With ThinLTO, the linker runs sanitizer passes at link time via -fsanitize= flags, where it has whole-program visibility. Running them at bitcode emission too double-instruments every module, producing hundreds of "Redundant instrumentation detected" warnings. Per-function sanitize/no_sanitize attributes are preserved in the bitcode and respected by the linker's pass. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | ||||
| * | | Add ThinLTO support via -lto:thin and -lto:thin-files flags | Jesse Meyer | 11 days | 5 | -7/+78 |
| |/ | | | | | | | | | | | - 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> | ||||
| * | Merge branch 'master' into bill/feature-using-stmt | gingerBill | 2026-01-30 | 25 | -257/+731 |
| |\ | |||||
| | * | Support `-linker:mold` on FreeBSD and NetBSD; Remove `-use-lld` and ↵ | gingerBill | 2026-01-30 | 2 | -13/+1 |
| | | | | | | | | | `-use-radlink` | ||||
| | * | Merge branch 'odin-lang:master' into vet_flags | Faker-09 | 2026-01-29 | 7 | -11/+73 |
| | |\ | |||||
| | | * | Remove else check for untyped to typed | gingerBill | 2026-01-29 | 1 | -2/+4 |
| | | | | |||||
| | | * | Add `struct #simple` to force a struct to use simple comparison if all of ↵ | gingerBill | 2026-01-29 | 5 | -7/+53 |
| | | | | | | | | | | | | | the fields "nearly simply comparable". | ||||
| | | * | Complete `is_type_simple_compare` `switch` rules | gingerBill | 2026-01-29 | 1 | -0/+11 |
| | | | | |||||
| | | * | Allow #unroll for arrays of fixed length which are not constants | gingerBill | 2026-01-28 | 2 | -2/+5 |
| | | | | |||||
| | * | | Fix for vet flags. All combinations of vet flags on the command line and top ↵ | Shane Shrybman | 2026-01-28 | 1 | -3/+3 |
| | |/ | | | | | | | of file are working | ||||
| | * | Fix #6183 | gingerBill | 2026-01-27 | 1 | -0/+16 |
| | | | |||||
| | * | Allow for `CONSTANT_TYPEID_ARRAY[idx]` to be used as a type in certain contexts | gingerBill | 2026-01-26 | 1 | -0/+14 |
| | | | |||||
| | * | Fix constant indexing within a call that doesn't exist | gingerBill | 2026-01-26 | 1 | -0/+5 |
| | | | |||||
| | * | Use `context.assertion_failure_proc` with type assertions when the `context` ↵ | gingerBill | 2026-01-26 | 3 | -9/+47 |
| | | | | | | | | | is available, otherwise use a trivial trap. | ||||
| | * | Allow for shortcut to get feature flags from the expression directly ↵bill/force-type-assert | gingerBill | 2026-01-26 | 1 | -3/+9 |
| | | | | | | | | | assuming it as a file | ||||
| | * | Revert dynamic literals feature check | gingerBill | 2026-01-26 | 1 | -4/+2 |
| | | | |||||
| | * | Add `#+feature force-type-assert` which overrides `-no-type-assert` on a ↵ | gingerBill | 2026-01-26 | 2 | -20/+47 |
| | | | | | | | | | per-file basis | ||||
| | * | Require space after the prefix of `#+build` style tags | gingerBill | 2026-01-26 | 1 | -0/+27 |
| | | | |||||
| | * | Merge pull request #6166 from laytan/vet-file-tags-in-addition-to-command-line | gingerBill | 2026-01-24 | 1 | -20/+8 |
| | |\ | | | | | | | make #+vet tags always work in addition to command line flags | ||||