| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-03-26 | Zcu.Decl: remove `ty` field | mlugg | |
| `Decl` can no longer store un-interned values, so this field is now unnecessary. The type can instead be fetched with the new `typeOf` helper method, which just gets the type of the Decl's `Value`. | |||
| 2024-03-11 | std.builtin: make atomic order fields lowercase | Tristan Ross | |
| 2024-03-11 | std.builtin: make container layout fields lowercase | Tristan Ross | |
| 2024-03-06 | InternPool: create specialized functions for loading namespace types | mlugg | |
| Namespace types (`struct`, `enum`, `union`, `opaque`) do not use structural equality - equivalence is based on their Decl index (and soon will change to AST node + captures). However, we previously stored all other information in the corresponding `InternPool.Key` anyway. For logical consistency, it makes sense to have the key only be the true key (that is, the Decl index) and to load all other data through another function. This introduces those functions, by the name of `loadStructType` etc. It's a big diff, but most of it is no-brainer changes. In future, it might be nice to eliminate a bunch of the loaded state in favour of accessor functions on the `LoadedXyzType` types (like how we have `LoadedUnionType.size()`), but that can be explored at a later date. | |||
| 2024-03-02 | Air: replace `.dbg_inline_*` with `.dbg_inline_block` | Jacob Young | |
| This prevents the possibility of not emitting a `.dbg_inline_end` instruction and reduces the allocation requirements of the backends. Closes #19093 | |||
| 2024-02-26 | compiler: decide dbg_var scoping based on AIR blocks | mlugg | |
| This commit eliminates the `dbg_block_{begin,end}` instructions from both ZIR and AIR. Instead, lexical scoping of `dbg_var_{ptr,val}` instructions is decided based on the AIR block they exist within. This is a much more robust system, and also results in a huge drop in ZIR bytes - around 7% for Sema.zig. This required some enhancements to Sema to prevent elision of blocks when they are required for debug variable scoping. This can be observed by looking at the AIR for the following simple test program with and without `-fstrip`: ```zig export fn f() void { { var a: u32 = 0; _ = &a; } { var a: u32 = 0; _ = &a; } } ``` When `-fstrip` is passed, no AIR blocks are generated. When `-fno-strip` is passed, the ZIR blocks are lowered to true AIR blocks to give correct lexical scoping to the debug vars. The changes here incidentally reolve #19060. A corresponding behavior test has been added. Resolves: #19060 | |||
| 2024-02-25 | x86_64: implement more shuffles | Jacob Young | |
| 2024-02-25 | x86_64: implement optional comparisons | Jacob Young | |
| Closes #18959 | |||
| 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 `@shuffle` | Jacob Young | |
| 2024-02-25 | x86_64: fix inline asm match constraints | Jacob Young | |
| 2024-02-25 | x86_64: implement `@select` | Jacob Young | |
| 2024-02-25 | x86_64: fix incorrect mnemonic selection | Jacob Young | |
| 2024-02-22 | Builder: fix float constants in llvm ir | Jacob Young | |
| 2024-02-16 | InternPool: make more use of `NullTerminatedString.Slice` | Jacob Young | |
| This should avoid the random pointer invalidation crashes. Closes #18954 | |||
| 2024-02-14 | x86_64: fix crash loading a packed value from a spilled pointer | Jacob Young | |
| Unblocks #18923 | |||
| 2024-02-12 | x86_64: implement `@clz` and `@ctz` of big integers | Jacob Young | |
| 2024-02-12 | x86_64: implement `@byteSwap` of big integers | Jacob Young | |
| 2024-02-12 | x86_64: fix compiler_rt tests | Jacob Young | |
| 2024-02-12 | x86_64: implement shifts of big integers | Jacob Young | |
| 2024-02-12 | x86_64: fix register clobber | Jacob Young | |
| 2024-02-12 | x86_64: implement c abi for bool vectors | Jacob Young | |
| 2024-02-12 | x86_64: implement `@abs` of big integers | Jacob Young | |
| 2024-02-12 | x86_64: fix assert location | Jacob Young | |
| 2024-02-12 | x86_64: fix packed load | Jacob Young | |
| 2024-02-12 | x86_64: implement `ret_safe` | Jacob Young | |
| 2024-02-12 | x86_64: fix incorrect alignment check | 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 | x86: remove final vestiges of mir_to_air (#18836) | Pyry Kovanen | |
| 2024-02-06 | add the `clflush` mnem | David Rubin | |
| 2024-02-05 | compiler: rename value.zig to Value.zig | Andrew Kelley | |
| This commit only does the file rename to be friendlier to version control conflicts. | |||
| 2024-02-05 | x86_64: fix miscompilations on baseline | Jacob Young | |
| 2024-01-29 | llvm: ensure returned undef is 0xaa bytes when runtime safety is enabled | Veikka Tuominen | |
| Closes #13178 | |||
| 2024-01-24 | x86_64: save TLS to stack for MachO | Jakub Konka | |
| 2024-01-24 | codegen: implement more missing bits | Jakub Konka | |
| 2024-01-24 | codegen: re-implement enough of codegen to error out instead panic | Jakub Konka | |
| 2024-01-24 | macho: get the ball rolling! | Jakub Konka | |
| 2024-01-01 | fix remaining compile errors except one | Andrew Kelley | |
| 2024-01-01 | fix more compilation errors introduced by this branch | Andrew Kelley | |
| 2024-01-01 | fix a round of compile errors caused by this branch | Andrew Kelley | |
| 2024-01-01 | compiler: update references to target | Andrew Kelley | |
| 2024-01-01 | update references to module (to be renamed to zcu) | Andrew Kelley | |
| 2023-12-04 | x86_64: fix packed struct field reuse | Jacob Young | |
| 2023-12-04 | x86_64: fix vector comparisions | Jacob Young | |
| 2023-12-04 | x86_64: implement more operations on vectors with 1-bit elements | Jacob Young | |
| 2023-12-03 | x86_64: implement movement for pointer vectors | Jacob Young | |
| 2023-12-03 | x86_64: "implement" `aggregate_init` for vectors | Jacob Young | |
| 2023-12-03 | x86_64: implement some todos | Jacob Young | |
| 2023-12-03 | x86_64: implement more compliant vectors | Jacob Young | |
