aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-09-23resinator: fix 32-bit buildsAndrew Kelley
This is unfortunately not caught by the CI because the resinator code is not enabled unless `-Denable-llvm` is used.
2023-09-23sema: fix mem leaks in inferred error set handlingJakub Konka
2023-09-23spirv: fixesRobin Voetter
2023-09-23spirv: air dbg_var_val and dbg_var_ptrRobin Voetter
2023-09-23spirv: fix blocks that return no valueRobin Voetter
2023-09-23spirv: fix source line numbersRobin Voetter
2023-09-23spirv: enable passing testsRobin Voetter
2023-09-23spirv: constant elem ptrRobin Voetter
2023-09-23spirv: air sliceRobin Voetter
2023-09-23spirv: air wrap_errunion_payloadRobin Voetter
2023-09-23spirv: air unwrap_errunion_payloadRobin Voetter
2023-09-23spirv: air is_err, is_non_errRobin Voetter
2023-09-23spirv: generate module initializerRobin Voetter
2023-09-23spirv: air array_elem_val using hackRobin Voetter
SPIR-V doesn't support true element indexing, so we probably need to switch over to isByRef like in llvm for this to work properly. Currently a temporary is used, which at least seems to work.
2023-09-23spirv: air aggregate_init for arrayRobin Voetter
2023-09-23spirv: air array_to_sliceRobin Voetter
2023-09-23spirv: air sub_with_overflowRobin Voetter
2023-09-23spirv: air union_initRobin Voetter
2023-09-23spirv: air set_union_tag + improve load()/store()Robin Voetter
2023-09-23spirv: air struct_field_ptr for unionsRobin Voetter
2023-09-23spirv: air struct_field_val for unionsRobin Voetter
2023-09-23spirv: add names to globals and initializersRobin Voetter
2023-09-23spirv: emit OpLogical(Not)Equal for comparing boolsRobin Voetter
2023-09-23spirv: emit OpNot for arithmetic notRobin Voetter
2023-09-23spirv: fix store of undefRobin Voetter
2023-09-23spirv: also add Float64 by defaultRobin Voetter
2023-09-23spirv: fix type_map use-after-realloc issuesRobin Voetter
2023-09-23spirv: make construct(Struct|Array) use the Function storage classRobin Voetter
2023-09-23spirv: always emit unsigned integersRobin Voetter
This is required for SPIR-V in Kernel mode. The Intel implementation just didn't care about this fact.
2023-09-23spirv: fixesRobin Voetter
2023-09-23spirv: remove indirect constant loweringRobin Voetter
It is stupid and I hate it.
2023-09-23spirv: put global var initializers in functionsRobin Voetter
2023-09-23spirv: lower union initialization at runtimeRobin Voetter
2023-09-23spirv: lower struct aggregate initialization at runtimeRobin Voetter
2023-09-23spirv: lower array aggregate at runtimeRobin Voetter
2023-09-23spirv: lower opt constantsRobin Voetter
2023-09-23spirv: lower ptr constantsRobin Voetter
2023-09-23spirv: lower enum_tag constantsRobin Voetter
2023-09-23spirv: assign type names to (error) unionsRobin Voetter
2023-09-23spirv: construct error union at runtimeRobin Voetter
2023-09-23spirv: add type_map to map AIR types to SPIR-V typesRobin Voetter
This will help us both to make the implementation a little more efficient by caching emission for certain types like structs, and also allow us to attach extra information about types that we can use while lowering without performing a search over the entire type tree for some property.
2023-09-23spirv: disable failing testsRobin Voetter
2023-09-23Fix reportRetryableWin32ResourceErrorRyan Liptak
Follow up to https://github.com/ziglang/zig/pull/17069. This TODO being left in was a complete oversight. Before, any 'retryable' error would hit: error: thread 2920 panic: access of union field 'success' while field 'failure_retryable' is active Now, it will be reported/handled properly: C:\Users\Ryan\Programming\Zig\zig\test\standalone\windows_resources\res\zig.rc:1:1: error: FileNotFound
2023-09-23Sema: do not emit dbg_var_val and dbg_var_ptr instructions for comptime-only ↵mlugg
types
2023-09-23Sema: don't attempt to reinterpret comptime-only types when mutating ↵mlugg
comptime memory I have no idea how correct this code is, but I'm working on a full rewrite of this logic anyway, and this certainly seems more correct than before.
2023-09-23Sema: refactor detection of comptime-known constsmlugg
This was previously implemented by analyzing the AIR prior to the ZIR `make_ptr_const` instruction. This solution was highly delicate, and in particular broke down whenever there was a second `alloc` between the `store` and `alloc` instructions, which is especially common in destructure statements. Sema now uses a different strategy to detect whether a `const` is comptime-known. When the `alloc` is created, Sema begins tracking all pointers and stores which refer to that allocation in temporary local state. If any store is not comptime-known or has a higher runtime index than the allocation, the allocation is marked as being runtime-known. When we reach the `make_ptr_const` instruction, if the allocation is not marked as runtime-known, it must be comptime-known. Sema will use the set of `store` instructions to re-initialize the value in comptime memory. We optimize for the common case of a single `store` instruction by not creating a comptime alloc in this case, instead directly plucking the result value from the instruction. Resolves: #16083
2023-09-23TypedValue: print undef @ptrFromInt pointers correctlymlugg
2023-09-22Sema: optimize comptime @memset by setting all elements at oncemlugg
Previously, @memset at comptime performed N pointer stores. This is less efficient than just storing a whole array of values at once. The difference can be quite drastic when reinterpreting memory - a test case which is 40s on master branch now takes under a second on a debug compiler build. Resolves: #17214
2023-09-22AstGen: fix @export with undeclared identifier crashingWooster
This required a third `if (found_already == null)` in another place in AstGen.zig for this special case of `@export`. Fixes #17188
2023-09-22Merge pull request #17069 from squeek502/resinatorAndrew Kelley
Add a `.rc` -> `.res` compiler to the Zig compiler