aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
AgeCommit message (Collapse)Author
2024-02-21LLVM Builder: Add integer values to more enums fieldsantlilja
2024-02-21Fix FastMath packed structantlilja
* Added missing legacy field (unused_algebra) * Made struct correct size (u32 -> u8)
2024-02-21Added value_indices and valueIndex to Functionantlilja
value_indices keeps track of the value index of each instruction in the function (i.e skips instruction which do not have a result)
2024-02-21Made .block = false in WipFunction.hasResultWipantlilja
2024-02-21Builder: Add function_attributes_setantlilja
2024-02-21Added opcode functions to Instruction/Constant.Tagantlilja
2024-02-21Added values to AtomicRmw.Operation enum fieldsantlilja
2024-02-21Fixed values in AtomicOrdering enumantlilja
2024-02-21LLVM Builder: Add toLlvm helper to Alignmentantlilja
2024-02-21LLVM Builder: Add strtab helper to Stringantlilja
2024-02-21LLVM Builder: Make Type.Simple reflect LLVM codesantlilja
2024-02-21LLVM: Make sure child types get added firstantlilja
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-21LLVM: Assign correct values to enum/union tagsantlilja
2024-02-20llvm: fix c abi for structs not passed in registersJacob Young
Closes #18916
2024-02-19cbe: make more use of `InternPool.Index.Slice`Jacob Young
Attempts to fix the current CI failures introduced by #18983.
2024-02-17Merge pull request #18948 from alichraghi/vectorRobin Voetter
spirv: use extended instructions whenever possible
2024-02-16InternPool: make more use of `NullTerminatedString.Slice`Jacob Young
This should avoid the random pointer invalidation crashes. Closes #18954
2024-02-15spirv: add capability to compile with x86_64 backendAli Chraghi
2024-02-15spirv: use extended instructions whenever possibleAli Chraghi
2024-02-15llvm: fix lowering of recursive debug infoJacob Young
This change allows recursing over types that are currently being resolved fully with a second pass of forward resolution. Closes #16414
2024-02-12x86_64: implement c abi for bool vectorsJacob Young
2024-02-10spirv: remove now-redundant isUnused calls from AIR handler functionsAli Chraghi
2024-02-09spirv: emit vectorized operationsAli Chraghi
2024-02-09Merge pull request #18857 from alichraghi/shaderVeikka Tuominen
spirv: make rusticl the primary testing implementation
2024-02-09spirv: make rusticl the primary testing implementationAli Chraghi
2024-02-09spirv: merge `construct(Struct/Vector/Array)` into `constructComposite`Ali Chraghi
2024-02-07Merge pull request #17634 from ianprime0509/type-erased-writerAndrew Kelley
Add type-erased writer and GenericWriter
2024-02-06Builder: fix memory leaksJacob Young
2024-02-05compiler: rename value.zig to Value.zigAndrew Kelley
This commit only does the file rename to be friendlier to version control conflicts.
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
2024-02-05Merge pull request #18580 from Snektron/spirv-more-vectorsRobin Voetter
spirv: more vector operations
2024-02-04x86_64: fix errors compiling the compilerJacob Young
This fixes issues targetting both `x86_64-linux` and `x86_64-macos` with the self-hosted backend.
2024-02-04spirv: air vector_store_elementRobin Voetter
2024-02-04spirv: air splatRobin Voetter
2024-02-04spirv: air absRobin Voetter
2024-02-04spirv: fix shuffle properlyRobin Voetter
2024-02-04spirv: vectorize max, minRobin Voetter
2024-02-04spirv: vectorize int_cast, truncRobin Voetter
2024-02-04spirv: air is_(non_)null_ptr, optional_payload_ptrRobin Voetter
2024-02-04spirv: air mul_addRobin Voetter
2024-02-04spirv: air int_from_boolRobin Voetter
2024-02-04spirv: clean up arithmeticTypeInfo a bitRobin Voetter
- No longer returns an error - Returns more useful vector info
2024-02-04spirv: wrap strange its before instead of after operationRobin Voetter
Wrapping strange integers before an operation was initially done as an attempt to minimize the amount of normalizations required: This way, there would not be a normalization necessary between two modular operations. This was a premature optimization, since the resulting logic is more complicated than naive way of wrapping the result after the operation. This commit updates handling of strange integers to do wrapping after each operation. It also seems slightly more efficient in terms of size of generated code, as it reduces the size of the behavior tests binary by about 1%.
2024-02-04spirv: vectorize add/sub overflowRobin Voetter
2024-02-04spirv: reduce, reduce_optimizedRobin Voetter
2024-02-04spirv: shlWithOverflowRobin Voetter
2024-02-04spirv: vectors for air notRobin Voetter
2024-02-04spirv: use new vector stuff for arithOp and shiftRobin Voetter