| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-09-26 | compiler: move self-hosted backends from src/arch to src/codegen | Alex Rønne Petersen | |
| 2025-09-21 | Elf2: create a new linker from scratch | Jacob Young | |
| This iteration already has significantly better incremental support. Closes #24110 | |||
| 2025-08-11 | linker: delete plan9 support | Andrew Kelley | |
| This experimental target was never fully completed. The operating system is not that interesting or popular anyway, and the maintainer is no longer around. Not worth the maintenance burden. This code can be resurrected later if it is worth it. In such case it will be subject to greater scrutiny. | |||
| 2025-06-19 | x86_64: increase passing test coverage on windows | Jacob Young | |
| Now that codegen has no references to linker state this is much easier. Closes #24153 | |||
| 2025-06-12 | x86_64: remove linker references from codegen | Jacob Young | |
| 2025-06-12 | x86_64: remove air references from mir | Jacob Young | |
| 2025-06-12 | compiler: get most backends compiling again | mlugg | |
| As of this commit, every backend other than self-hosted Wasm and self-hosted SPIR-V compiles and (at least somewhat) functions again. Those two backends are currently disabled with panics. Note that `Zcu.Feature.separate_thread` is *not* enabled for the fixed backends. Avoiding linker references from codegen is a non-trivial task, and can be done after this branch. | |||
| 2025-06-06 | x86_64: add support for pie executables | Jacob Young | |
| 2025-05-28 | x86_64: implement integer `@reduce(.Min)` | Jacob Young | |
| 2025-05-28 | x86_64: implement optimized float `@reduce(.Add)` | Jacob Young | |
| 2025-05-28 | x86_64: implement integer `@reduce(.Mul)` | Jacob Young | |
| 2025-04-10 | x86_64: support rip-relative addressing to labels in inline asm | Jacob Young | |
| 2025-02-17 | x86_64: implement prefetch | Jacob Young | |
| 2025-02-17 | x86_64: rewrite unsafe int vector multiplication | Jacob Young | |
| 2025-02-15 | x86_64: rewrite unsafe scalar int multiplication | Jacob Young | |
| 2025-01-26 | x86_64: rewrite `@min`/`@max` for scalar floats | Jacob Young | |
| 2025-01-24 | x86_64: rewrite scalar float equality comparisons | Jacob Young | |
| 2025-01-21 | x86_64: rewrite `@abs` for scalar floats | Jacob Young | |
| 2025-01-20 | x86_64: rewrite `@abs` | Jacob Young | |
| 2025-01-18 | x86_64: add a bunch of instruction encodings | Jacob Young | |
| Closes #19773 | |||
| 2025-01-16 | x86_64: implement a custom calling convention for the Zig language | Jacob Young | |
| 2025-01-16 | x86_64: fix unnecessary register saving | Jacob Young | |
| 2025-01-16 | x86_64: implement switch jump tables | Jacob Young | |
| 2025-01-16 | x86_64: implement clz and not | Jacob Young | |
| 2025-01-16 | x86_64: demolish the old | Jacob Young | |
| 2025-01-16 | x86_64: testing | Jacob Young | |
| 2025-01-16 | x86_64: rewrite arithmetic | Jacob Young | |
| 2024-11-24 | dwarf: fix stepping through an inline loop containing one statement | Jacob Young | |
| Previously, stepping from the single statement within the loop would always exit the loop because all of the code unrolled from the loop is associated with the same line and treated by the debugger as one line. | |||
| 2024-10-09 | Dwarf: implement and test lexical blocks | Jacob Young | |
| 2024-08-29 | compiler: avoid field/decl name conflicts | mlugg | |
| Most of the required renames here are net wins for readaibility, I'd say. The ones in `arch` are a little more verbose, but I think better. I didn't bother renaming the non-conflicting functions in `arch/arm/bits.zig` and `arch/aarch64/bits.zig`, since these backends are pretty bit-rotted anyway AIUI. | |||
| 2024-08-28 | std: update `std.builtin.Type` fields to follow naming conventions | mlugg | |
| The compiler actually doesn't need any functional changes for this: Sema does reification based on the tag indices of `std.builtin.Type` already! So, no zig1.wasm update is necessary. This change is necessary to disallow name clashes between fields and decls on a type, which is a prerequisite of #9938. | |||
| 2024-08-27 | Dwarf: implement .eh_frame | Jacob Young | |
| 2024-08-22 | Dwarf: add missing var args info on function decls | Jacob Young | |
| 2024-08-20 | x86_64: support more dwarf locations | Jacob Young | |
| 2024-08-20 | Dwarf: emit info about inline call sites | Jacob Young | |
| 2024-08-16 | Dwarf: rework self-hosted debug info from scratch | Jacob Young | |
| This is in preparation for incremental and actually being able to debug executables built by the x86_64 backend. | |||
| 2024-08-13 | x86_64: emit call rel32 for near calls with linker reloc | Jakub Konka | |
| 2024-03-01 | compiler: audit debug mode checks | Jacob Young | |
| * Introduce `-Ddebug-extensions` for enabling compiler debug helpers * Replace safety mode checks with `std.debug.runtime_safety` * Replace debugger helper checks with `!builtin.strip_debug_info` Sometimes, you just have to debug optimized compilers... | |||
| 2024-02-25 | x86_64: fix avx2 `@truncacte` | Jacob Young | |
| 2024-02-25 | Sema: implement vector coercions | Jacob Young | |
| These used to be lowered elementwise in air, and now are a single air instruction that can be lowered elementwise in the backend if necessary. | |||
| 2024-02-25 | x86_64: implement `@select` | Jacob Young | |
| 2024-02-12 | x86_64: implement mul, div, and mod of large integers | Jacob Young | |
| This enables the last compiler-rt test disabled for the x86_64 backend. | |||
| 2024-02-06 | add the `clflush` mnem | David Rubin | |
| 2023-11-12 | Dwarf: improve x86_64 backend debug info | Jacob Young | |
| Closes #17811 | |||
| 2023-11-03 | x86_64: fix std test failures | Jacob Young | |
| 2023-10-29 | x86_64: refactor codegen memory repr | Jacob Young | |
| Also refactor linker reloc lowering. | |||
| 2023-10-28 | x86_64: do not hardcode memory passed by Elf linker | Jakub Konka | |
| 2023-10-25 | x86_64: pass more tests | Jacob Young | |
| * 128-bit integer multiplication with overflow * more instruction encodings used by std inline asm * implement the `try_ptr` air instruction * follow correct stack frame abi * enable full panic handler * enable stack traces | |||
| 2023-10-23 | x86_64: implement 128-bit builtins | Jacob Young | |
| * `@clz` * `@ctz` * `@popCount` * `@byteSwap` * `@bitReverse` * various encodings used by std | |||
| 2023-10-23 | x86_64: implement enough to pass unicode tests | Jacob Young | |
| * implement vector comparison * implement reduce for bool vectors * fix `@memcpy` bug * enable passing std tests | |||
