| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2022-12-10 | CBE: fix compiling for aarch64-windows | Jacob Young | |
| These bugs were triggered in the C backend by aarch64-specific code in os/windows.zig. Intentionally not updating zig1.wasm yet because of upcoming changes and since aarch64-windows is not tested on master yet. | |||
| 2022-12-09 | Eliminate `BoundFn` type from the language | Veikka Tuominen | |
| Closes #9484 | |||
| 2022-12-09 | llvm: resolve all relative paths when creating DIFiles | Jakub Konka | |
| This will make stack traces and debugging experience more consistent in the sense that the presence of source lines in stack traces will not be dependent on the current working directory of the running process. | |||
| 2022-12-06 | remove most conditional compilation based on stage1 | Andrew Kelley | |
| There are still a few occurrences of "stage1" in the standard library and self-hosted compiler source, however, these instances need a bit more careful inspection to ensure no breakage. | |||
| 2022-12-06 | CBE: avoid trailing space | Jacob Young | |
| 2022-12-06 | CBE: add windows-specific reserved identifiers | Jacob Young | |
| 2022-12-06 | CBE: fix bad local reuse for volatile memset | Jacob Young | |
| 2022-12-04 | CBE: revert broken change that got missed | Jacob Young | |
| 2022-12-04 | CBE: defer invariant local reuse in loops | Jacob Young | |
| When a local defined outside a loop dies inside the loop, it can still be needed on subsequent loop iterations, so reuse of the local must be deferred until after the loop ends. This causes behavior tests to pass. | |||
| 2022-12-04 | CBE: fix liveness issue with wrapping optionals | Andrew Kelley | |
| 2022-12-04 | CBE: remove stray comment | Andrew Kelley | |
| 2022-12-04 | CBE: fix union init wrong field name | Andrew Kelley | |
| 2022-12-04 | CBE: aggregate_init: resolve all operands before processing Liveness | Andrew Kelley | |
| 2022-12-04 | CBE and LLVM: handle unused try instructions | Andrew Kelley | |
| In both backends they did not observe the Liveness information for try instructions. Now they do. For the C backend this is necessary for correctness; for the LLVM backend, it improves code generation. | |||
| 2022-12-04 | CBE: fix various regressions caught by behavior tests | Andrew Kelley | |
| 2022-12-04 | CBE: fix static allocs being double allocated | Andrew Kelley | |
| 2022-12-04 | CBE: avoid curly inits because they don't work in assignments | Andrew Kelley | |
| 2022-12-04 | CBE: fix use-after-free of Type keys in free_locals map | Andrew Kelley | |
| 2022-12-04 | CBE: fix assignment expr and switch free tracking | Andrew Kelley | |
| 2022-12-04 | CBE: fix clone of freed locals not being deep clone | Andrew Kelley | |
| 2022-12-04 | CBE: take advantage of switch_br and cond_br liveness | Andrew Kelley | |
| 2022-12-04 | CBE: exploit Liveness analysis to reuse locals | Andrew Kelley | |
| 2022-12-04 | Revert "cbe: reduce amount of temporary locals" | Andrew Kelley | |
| This reverts commit 15cc83e27ae8a1740d9b7e2ec14044903979a832. | |||
| 2022-12-04 | Revert "cbe: write more instructions inline" | Andrew Kelley | |
| This reverts commit f8b779c114a5fcb82f08168912f2300d7027a2fd. | |||
| 2022-12-03 | cbe: add forward declarations for optionals and error unions | Jacob Young | |
| Arrays will have to wait for type rewrite. | |||
| 2022-12-03 | cbe: implement function alignment | Jacob Young | |
| 2022-12-03 | cbe: fix zero-bit struct field pointer | Jacob Young | |
| 2022-12-03 | cbe: implement multiple exports of a symbols | Jacob Young | |
| 2022-12-03 | cbe: don't emit extern decls that are already exported | Jacob Young | |
| 2022-12-03 | cbe: fix named constraints without modifiers | Jacob Young | |
| 2022-12-03 | CBE: no braces when lowering block instruction | Andrew Kelley | |
| This change alone solves the bracket-depth issue when compiling zig1.c with Clang. | |||
| 2022-12-03 | Merge pull request #13748 from jacobly0/c-unaligned | Andrew Kelley | |
| cbe: use memcpy for underaligned loads and stores | |||
| 2022-12-03 | Merge pull request #13744 from Vexu/stage2-fixes | Andrew Kelley | |
| Improve error messages, fix dependency loops | |||
| 2022-12-02 | cbe: add support for constraint modifiers specified after a colon | Jacob Young | |
| This translates `%[name:mod]` to `%mod[name]` for C. | |||
| 2022-12-02 | cbe: use memcpy for underaligned loads and stores | Jacob Young | |
| 2022-12-02 | CBE: use bool, true, false, instead of `zig_` prefixes | Andrew Kelley | |
| In general the C backend should lower to human-maintainable C code whenever possible. Directly using C types that one would use when writing C code is one part of the strategy. The concern with including stdint.h is C89 compatibility. Well, we can just check the C std lib version before deciding to include that header. | |||
| 2022-12-02 | CBE: use a 0 literal instead of `error.@"(no error)"` | Andrew Kelley | |
| This saves bytes and is easier to read too. | |||
| 2022-12-03 | Sema: fix comparisons between lazy and runtime values | Veikka Tuominen | |
| Closes #12498 | |||
| 2022-12-02 | CBE: eliminate zig_void | Andrew Kelley | |
| C void is perfectly fine. | |||
| 2022-12-01 | Merge pull request #13715 from Vexu/cbe | Andrew Kelley | |
| cbe bug fixes and improvements | |||
| 2022-11-30 | llvm: make debuggers actually usable | Veikka Tuominen | |
| `@llvm.dbg.value` is absolutely useless, adding a temporary alloca to store the constant in will make it actually show up in debuggers. The effect on performance should be minimal since there is only one store and it the change is not applied to ReleaseSafe builds. ```zig fn foo(a: u32, b: []const u8, c: bool, d: enum { yes, no }) void { _ = a; _ = b; _ = c; _ = d; } ``` before: ``` Breakpoint 1, a.foo (a=<optimized out>, b=..., c=<optimized out>, d=<optimized out>) at a.zig:18 18 _ = d; ``` after: ``` Breakpoint 1, a.foo (a=1, b=..., c=false, d=yes) at a.zig:15 15 _ = a; _ = b; _ = c; _ = d; (gdb) p b $1 = {ptr = 0x20854f <a.main.anon_3888> "bar", len = 3} ``` | |||
| 2022-11-30 | cbe: write more instructions inline | Veikka Tuominen | |
| 2022-11-30 | cbe: do not memcpy identical integer types when bitcasting | Veikka Tuominen | |
| 2022-11-30 | cbe: reduce amount of temporary locals | Veikka Tuominen | |
| 2022-11-30 | cbe: fix asm return values | Veikka Tuominen | |
| 2022-11-30 | cbe: prevent access of inactive union field in unimplemented instructions | Veikka Tuominen | |
| 2022-11-30 | cbe: include hash in tuple type name | Veikka Tuominen | |
| Different (simple) tuple types do not necessarily print out as different strings. This is issue would be caused by passing std.fmt.Formatter to std.fmt.format. | |||
| 2022-11-30 | cbe: implement packed unions | Veikka Tuominen | |
| 2022-11-30 | cbe: correctly handle pointers to zero bit error union payloads | Veikka Tuominen | |
| 2022-11-30 | cbe: operand of address of operator must be an lvalue | Veikka Tuominen | |
