| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-03-02 | Merge pull request #19152 from antlilja/llvm-broken-debug | Andrew Kelley | |
| LLVM: Fail to emit if LLVM encounters broken debug info | |||
| 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-03-02 | LLVM: Fail to emit if LLVM encounters broken debug info | antlilja | |
| 2024-02-29 | codegen: handle dbg_var scoping correctly after eliding more ZIR blocks | mlugg | |
| Since we now elide more ZIR blocks in AstGen, care must be taken in codegen to introduce lexical scopes for every body, not just `block`s. Also, elide a few unnecessary AIR blocks in Sema. | |||
| 2024-02-29 | LLVM Builder: Fix emission of enum debug enumerator info bitcode | antlilja | |
| 2024-02-28 | LLVM: Don't create a debug lexical block when inlining | antlilja | |
| 2024-02-28 | Builder: Implement StrtabString and use it for Global names | antlilja | |
| 2024-02-26 | move Zcu.LazySrcLoc to std.zig.LazySrcLoc | Andrew Kelley | |
| Part of an effort to ship more of the compiler in source form. | |||
| 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 | Merge pull request #19080 from jacobly0/llvm-per-mod-strip | Andrew Kelley | |
| llvm: implement per-module stripping | |||
| 2024-02-25 | Merge pull request #18906 from jacobly0/x86_64-tests | Andrew Kelley | |
| x86_64: pass more tests | |||
| 2024-02-25 | test: rework how filtering works | Jacob Young | |
| * make test names contain the fully qualified name * make test filters match the fully qualified name * allow multiple test filters, where a test is skipped if it does not match any of the specified filters | |||
| 2024-02-25 | llvm: free llvm data before running llvm optimizations | Jacob Young | |
| This reduces the max memory usage. | |||
| 2024-02-25 | llvm: implement per-module stripping | Jacob Young | |
| This avoids llvm module verification errors when the strip option is different across modules. | |||
| 2024-02-25 | Merge pull request #19074 from antlilja/llvm-debug-loc | Jacob Young | |
| Rework LLVM debug locations to not emit them twice | |||
| 2024-02-25 | llvm: remork memory management in emit | 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 | Builder: Improve debug location system | antlilja | |
| Debug locations are no longer emitted twice every time | |||
| 2024-02-23 | llvm: revert debug file path resolution changes | Jacob Young | |
| Fixes test-stack-traces on windows. | |||
| 2024-02-23 | llvm: optimize i32 constants | Jacob Young | |
| 2024-02-23 | llvm: revert bad cleanup | Jacob Young | |
| 2024-02-22 | Builder: fix llvm ir value names | Jacob Young | |
| Hello world now verifies when not stripped. | |||
| 2024-02-22 | LLVM: Set new debug location after inlining | antlilja | |
| 2024-02-22 | Builder: support printing metadata in llvm ir | Jacob Young | |
| 2024-02-21 | LLVM Builder: Emit debug vector types with DIVector flag | antlilja | |
| 2024-02-21 | LLVM Builder: Rework MetadataString to not rely on String | antlilja | |
| This fixes a problem where empty strings where not emitted as null. This should also emit a smaller stringtab as all metadata strings were emitted in both the strtab and in the strings block inside the metadata block. | |||
| 2024-02-21 | llvm: fix builds that don't link with libllvm | Jacob Young | |
| 2024-02-21 | LLVM: Remove use of LLVM in Builder | antlilja | |
| 2024-02-21 | codegen/llvm: Remove use of DIBuilder and output bin by parsing bitcode | antlilja | |
| 2024-02-21 | LLVM: Emit bitcode even if libllvm is not present | antlilja | |
| 2024-02-21 | LLVM: Make sure child types get added first | antlilja | |
| The LLVM bitcode requires all type references in structs to be to earlier defined types. We make sure types are ordered in the builder itself in order to avoid having to iterate the types multiple times and changing the values of type indicies. | |||
| 2024-02-20 | llvm: fix c abi for structs not passed in registers | Jacob Young | |
| Closes #18916 | |||
| 2024-02-16 | InternPool: make more use of `NullTerminatedString.Slice` | Jacob Young | |
| This should avoid the random pointer invalidation crashes. Closes #18954 | |||
| 2024-02-15 | llvm: fix lowering of recursive debug info | Jacob Young | |
| This change allows recursing over types that are currently being resolved fully with a second pass of forward resolution. Closes #16414 | |||
| 2024-02-12 | x86_64: implement c abi for bool vectors | Jacob Young | |
| 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 | spirv: basic shader support | Ali Chraghi | |
| 2024-02-02 | InternPool: use separate key for slices | mlugg | |
| This change eliminates some problematic recursive logic in InternPool, and provides a safer API. | |||
| 2024-01-29 | llvm: ensure returned undef is 0xaa bytes when runtime safety is enabled | Veikka Tuominen | |
| Closes #13178 | |||
| 2024-01-29 | Merge pull request #18729 from Vexu/fixes | Andrew Kelley | |
| Fix some generic{Reader,Writer} related issues | |||
| 2024-01-29 | llvm: revert bad array access optimization | Veikka Tuominen | |
| Closes #18723 | |||
| 2024-01-29 | llvm: fix alignment of array ptr when bitcasting vector | Veikka Tuominen | |
| Closes #17996 | |||
| 2024-01-16 | Skip all dbg instructions | ocrap7 | |
| 2024-01-15 | Sema: fix `@extern` decls | Jacob Young | |
| Closes #18550 | |||
| 2024-01-11 | LLVM: fix lowering of extern anyopaque | Andrew Kelley | |
| closes #18461 | |||
| 2024-01-08 | llvm: optional slices cannot be passed in parts when they allowzero | Veikka Tuominen | |
| Closes #18428 | |||
| 2024-01-01 | fix population of builtin.zig not making the parent dir | Andrew Kelley | |
| 2024-01-01 | fix remaining compile errors except one | Andrew Kelley | |
| 2024-01-01 | move dll_export_fns and rdynamic to Compilation.Config | Andrew Kelley | |
| 2024-01-01 | update codegen.llvm references to bin_file.options | Andrew Kelley | |
