| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 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-28 | LLVM: Implement more efficient blob writing | antlilja | |
| 2024-02-26 | move Zir to std.zig.Zir | Andrew Kelley | |
| Part of an effort to ship more of the compiler in source form. | |||
| 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-26 | Merge pull request #19083 from antlilja/llvm-blockinfo | Andrew Kelley | |
| LLVM reduce size of emitted bitcode | |||
| 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-26 | Builder: Reduce size of DebugLoc abbrev | antlilja | |
| 2024-02-26 | Builder: Use BlockInfo block to reduce size of bitcode | antlilja | |
| 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 | x86_64: implement optional comparisons | Jacob Young | |
| Closes #18959 | |||
| 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: Fix llvm ir debug location output | antlilja | |
| 2024-02-25 | Builder: Improve debug location system | antlilja | |
| Debug locations are no longer emitted twice every time | |||
| 2024-02-24 | BitcodeWriter: cleanup type widths | Jacob Young | |
| 2024-02-24 | Builder: fix bitcode widths | Jacob Young | |
| 2024-02-24 | Builder: Emit metadata attachment for globals | antlilja | |
| 2024-02-23 | llvm: revert debug file path resolution changes | Jacob Young | |
| Fixes test-stack-traces on windows. | |||
| 2024-02-23 | Builder: fix inconsequential llvm ir flag syntax | Jacob Young | |
| 2024-02-23 | llvm: optimize i32 constants | Jacob Young | |
| 2024-02-23 | Builder: fix llvm ir/bc difference with allocas | Jacob Young | |
| 2024-02-23 | Builder: fix aliases in bitcode | Jacob Young | |
| 2024-02-23 | Builder: fix x86_fp80 constants in bitcode | Jacob Young | |
| 2024-02-23 | Builder: fix minor llvm ir syntax errors | Jacob Young | |
| 2024-02-23 | Builder: implement opaque structs in bitcode | Jacob Young | |
| 2024-02-23 | Builder: change tuple metadata to not be inlined in llvm ir | Jacob Young | |
| 2024-02-23 | llvm: revert bad cleanup | Jacob Young | |
| 2024-02-23 | Builder: fix inconsequential llvm ir metadata syntax | Jacob Young | |
| 2024-02-23 | Builder: sync distinct bits with previous implementation | Jacob Young | |
| 2024-02-23 | LLVM Builder: Make some Metadata no longer be distinct | antlilja | |
| 2024-02-23 | LLVM Builder: Formatting | antlilja | |
| 2024-02-23 | Builder: fix debug location of the first instruction in a block | Jacob Young | |
| 2024-02-22 | Builder: fix float constants in llvm ir | Jacob Young | |
| 2024-02-22 | Builder: fix bitcode strtab | 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 | LLVM Builder: Emit metadata kinds and function metadata attachments | antlilja | |
| 2024-02-22 | LLVM Builder: Emit type for debug subprogram | antlilja | |
| 2024-02-22 | Builder: support printing metadata in llvm ir | Jacob Young | |
| 2024-02-22 | LLVM Builder: Fix on 32-bit systems | antlilja | |
| 2024-02-21 | LLVM Builder: Emit debug vector types with DIVector flag | antlilja | |
| 2024-02-21 | LLVM Builder: Correctly emit debug subranges | antlilja | |
| The bitcode abbrev was missing the subrange code | |||
| 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 | |
