| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2023-04-20 | wasm: integrate new Liveness behaviour | Luuk de Gram | |
| Uses the new liveness behaviour. This also removes useless calls to `processDeath` on branches that were just initialized. Branch consolidation and processing deaths on branches inside `condbr` is still a TODO, just like before. This also skips var_args on other native backends as they do not support this feature yet. | |||
| 2023-04-20 | Liveness: avoid emitting unused instructions or marking their operands as used | mlugg | |
| Backends want to avoid emitting unused instructions which do not have side effects: to that end, they all have `Liveness.isUnused` checks for many instructions. However, checking this in the backends avoids a lot of potential optimizations. For instance, if a nested field is loaded, then the first field access would still be emitted, since its result is used by the next access (which is then unreferenced). To elide more instructions, Liveness can track this data instead. For operands which do not have to be lowered (i.e. are not side effecting and are not something special like `arg), Liveness can ignore their operand usages, and push the unused information further up, potentially marking many more instructions as unreferenced. In doing this, I also uncovered a bug in the LLVM backend relating to discarding the result of `@cVaArg`, which this change fixes. A behaviour test has been added to cover it. | |||
| 2023-04-20 | Sema: allow ptr field access on pointer-to-array | mlugg | |
| Also remove an incorrect piece of logic which allowed fetching the 'len' property on non-single-ptrs (e.g. many-ptrs) and add a corresponding compile error test case. Resolves: #4765 | |||
| 2023-04-16 | behavior: disable flaky test on x86_64 | Jacob Young | |
| Also reenable stage2_x86_64 windows behavior tests in case it is failing for the same reason. Closes #15324 | |||
| 2023-04-16 | x86_64: implement packed load and store | Jacob Young | |
| 2023-04-15 | disable more failing C backend tests | Andrew Kelley | |
| 2023-04-15 | disable not-yet-passing C backend tests | Andrew Kelley | |
| 2023-04-15 | CI: more C backend test coverage | Andrew Kelley | |
| The CI now runs C backend tests in addition to compiling them. It uses -std=c99 -pedantic -Werror in order to catch non-conformant C code. This necessitated disabling a test case that caused a C compile error, in addition to disabling a handful of warnings that are already being triggered by Zig's C backend output for the behavior tests. The upshot is that I was able to, very cleanly, integrate the C backend tests into the build system, so that it communicates via the test runner protocol along with all the other behavior tests. | |||
| 2023-04-13 | Merge pull request #15257 from Luukdegram/wasm-tagname | Luuk de Gram | |
| wasm: Implement `@tagName` instruction | |||
| 2023-04-13 | x86_64: fix constant pointers to zero-bit types | Jacob Young | |
| These non-dereferencable pointers still need to have the correct alignment and non-null-ness. | |||
| 2023-04-13 | x86_64: fix atomic loop implementation | Jacob Young | |
| 2023-04-13 | x86_64: fix some of the mass confusion about the meaning of `MCValue` | Jacob Young | |
| 2023-04-12 | wasm: enable `@tagName` behavior tests | Luuk de Gram | |
| 2023-04-12 | Zir: implement explicit block_comptime instruction | mlugg | |
| Resolves: #7056 | |||
| 2023-04-10 | Merge pull request #14853 from schmee/vector-peer-type-resolution | Andrew Kelley | |
| Vector type resolution/coercion fixes | |||
| 2023-04-07 | Enable new tests | Auguste Rame | |
| 2023-04-07 | Merge pull request #14668 from Techatrix/wasm-floatops | Luuk de Gram | |
| wasm: implement float operations with compiler-rt | |||
| 2023-04-07 | Liveness: defer deaths of externally-scoped instructions in loop bodies | mlugg | |
| 2023-04-05 | Sema: implement inline switch capture at comptime | Veikka Tuominen | |
| Closes #15157 | |||
| 2023-04-03 | x86_64: implement cmp_lt_errors_len | Jacob Young | |
| 2023-04-03 | x86_64: fix typos | Jacob Young | |
| 2023-04-03 | x86_64: implement store to immediate address | Jacob Young | |
| 2023-04-03 | x86_64: implement storing large immediates | Jacob Young | |
| 2023-04-02 | Sema: defer stores to inferred allocs | Jacob Young | |
| This lets us generate the store with knowledge of the type to be stored. Therefore, we can avoid generating garbage Air with stores through pointers to comptime-only types which backends cannot lower. Closes #13410 Closes #15122 | |||
| 2023-04-02 | x86_64: implement shl with overflow | Jacob Young | |
| 2023-04-02 | x86_64: implement large add/sub with overflow | Jacob Young | |
| 2023-04-02 | x86_64: implement struct_field_val for large packed structs | Jacob Young | |
| 2023-04-02 | x86_64: implement large cmp | Jacob Young | |
| 2023-04-02 | x86_64: implement error name | Jacob Young | |
| 2023-04-02 | x86_64: implement aggregate init of a packed struct | Jacob Young | |
| 2023-03-30 | llvm: fix crashes when loading a struct field | Jacob Young | |
| The result of buildStructGEP is not always a GEP (sorry), so we can't use getGEPResultElementType on it. Closes #14641 | |||
| 2023-03-28 | Sema: fix empty slice pointer value | Jacob Young | |
| We just checked that inst_child_ty was effectively a zero-bit type, so it is certainly not the non-zero alignment we are looking for. Closes #15085 | |||
| 2023-03-27 | x86_64: fix popcnt and disable regressed test | Jacob Young | |
| 2023-03-26 | wasm: implement float operations with compiler-rt | Techatrix | |
| 2023-03-25 | x86_64: implement atomic loops | Jacob Young | |
| 2023-03-25 | x86_64: fix cmpxchg | Jacob Young | |
| 2023-03-25 | x86_64: implement struct_field_val for packed containers | Jacob Young | |
| 2023-03-25 | x86_64: implement struct_field_ptr for packed containers | Jacob Young | |
| 2023-03-24 | x86_64: canonicalize each br of a block | Jacob Young | |
| 2023-03-24 | x86_64: fix more value tracking bugs | Jacob Young | |
| 2023-03-24 | x86_64: fix value tracking bugs | Jacob Young | |
| 2023-03-21 | Sema: implement @export for arbitrary values | mlugg | |
| 2023-03-21 | CBE: implement aggregateInit() for array of array case. | Xavier Bouchoux | |
| fixes `error(compilation): clang failed with stderr: error: array type 'uint32_t[10]' (aka 'unsigned int[10]') is not assignable` | |||
| 2023-03-21 | Merge pull request #15028 from Vexu/compile-errors | Veikka Tuominen | |
| Sema: improve error message of field access of wrapped type | |||
| 2023-03-21 | x86_64: implement atomic and fence ops | Jacob Young | |
| 2023-03-21 | codegen: fix backend breakage due to optional layout change | Jacob Young | |
| 2023-03-21 | x86_64: (re)implement optional ops | Jacob Young | |
| Note that this commit also changes the layout of optional for all other backends using `src/codegen.zig` without updating them! | |||
| 2023-03-21 | x86_64: implement some error union ops | Jacob Young | |
| 2023-03-21 | x86_64: implement @returnAddress and @frameAddress | Jacob Young | |
| 2023-03-21 | x86_64: implement basic float ops | Jacob Young | |
