aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/spirv
AgeCommit message (Collapse)Author
2024-04-06spirv: yeet cacheRobin Voetter
2024-04-06spirv: remove cache usage from assemblerRobin Voetter
2024-04-06spirv: remove cache usage for typesRobin Voetter
2024-04-06spirv: remove cache usage for constantsRobin Voetter
2024-04-06spirv: id range helperRobin Voetter
This allows us to more sanely allocate a continuous range of result-ids, and avoids a bunch of nasty casting code in a few places. Its currently not used very often, but will be useful in the future.
2024-04-06spirv: implement `@mulWithOverflow`Ali Chraghi
2024-04-06spirv: OpExtInstImport in assemblerAli Chraghi
2024-04-06spirv: implement `@divFloor`, `@floor` and `@mod`Ali Chraghi
2024-03-18spirv: make generic globals invocation-localRobin Voetter
2024-03-18spirv: add zig-specific ext instRobin Voetter
This may be removed again in the future...
2024-03-18spirv: make IdResult an enumRobin Voetter
2024-03-18spirv: update assembler with new specRobin Voetter
2024-03-18spirv: update spec to SPIRV-Headers/8b246ffRobin Voetter
We need this "unstable" version to get the Zig identifiers.
2024-03-11std.builtin: make container layout fields lowercaseTristan Ross
2024-02-15spirv: add capability to compile with x86_64 backendAli Chraghi
2024-02-15spirv: use extended instructions whenever possibleAli Chraghi
2024-02-09spirv: make rusticl the primary testing implementationAli Chraghi
2024-02-05spirv: support enum integer values in AssemblerAli Chraghi
2024-02-05spirv: emit vectors whenever we canAli Chraghi
2024-02-05spirv: basic shader supportAli Chraghi
2023-11-24spirv: structured control flowRobin Voetter
2023-11-24spirv: always emit mask constants even if no bits are setRobin Voetter
A parameter like this is not always optional, even if that is usually implied. SPIR-V tools fail to parse a module with an OpLoopMerge instruction where the loop control parameter is left out.
2023-11-24spirv: fix memory leak in SpvModuleRobin Voetter
2023-10-23Revert "Revert "Merge pull request #17657 from Snektron/spirv-recursive-ptrs""Robin Voetter
This reverts commit 9f0359d78f9facc38418e32b0e8c1bf6f99f0d26 in an attempt to make the tests pass again. The CI failure from that merge should be unrelated to this commit.
2023-10-22Revert "Merge pull request #17657 from Snektron/spirv-recursive-ptrs"Andrew Kelley
This reverts commit b822e841cda0adabe3fec260ff51c18508f7ee32, reversing changes made to 0c99ba1eab63865592bb084feb271cd4e4b0357e. This caused a CI failure when it landed in master branch.
2023-10-21spirv: self-referential pointers via new fwd_ptr_typeRobin Voetter
Its a little ugly but it works.
2023-10-15spirv: work around OpSource parsing issue in llvm-spirvRobin Voetter
The Khronos SPIRV-LLVM translator does not parse OpSource correctly. This was causing tests to fail and other mysterious issues. These are resolved by only generating a single OpSource instruction for now, which does not have the source file locations also. See https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/2188
2023-10-15spirv: air bitcast for non-numeric non-pointer typesRobin Voetter
2023-10-15spirv: use CacheString for source_file_names instead of []const u8Robin Voetter
2023-10-15spirv: get rid of SpvModule arenaRobin Voetter
2023-10-15spirv: opaque typesRobin Voetter
2023-09-23spirv: air dbg_var_val and dbg_var_ptrRobin Voetter
2023-09-23spirv: generate module initializerRobin Voetter
2023-09-23spirv: put global var initializers in functionsRobin Voetter
2023-06-24all: migrate code to new cast builtin syntaxmlugg
Most of this migration was performed automatically with `zig fmt`. There were a few exceptions which I had to manually fix: * `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten * `@truncate`'s fixup is incorrect for vectors * Test cases are not formatted, and their error locations change
2023-06-19all: zig fmt and rename "@XToY" to "@YFromX"Eric Joldasov
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-06-17std: replace builtin.Version with SemanticVersionr00ster91
2023-06-10stage2: move opaque types to InternPoolAndrew Kelley
2023-06-10stage2: move many Type encodings to InternPoolAndrew Kelley
Notably, `vector`. Additionally, all alternate encodings of `pointer`, `optional`, and `array`.
2023-05-30spirv: eliminate remaining uses of emitConstantRobin Voetter
2023-05-30spirv: rename TypeConstantCache -> CacheRobin Voetter
2023-05-30spirv: translate remaining typesRobin Voetter
2023-05-30spirv: translate remaining typesRobin Voetter
2023-05-30spirv: cache strings for debug namesRobin Voetter
2023-05-30spirv: translate structs to cache keyRobin Voetter
2023-05-30spirv: cache pointersRobin Voetter
2023-05-30spirv: cache function prototypesRobin Voetter
2023-05-30spirv: cache for intsRobin Voetter
2023-05-30spirv: cache for floatsRobin Voetter
2023-05-30spirv: basic setup for using new type constant cacheRobin Voetter