aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
AgeCommit message (Collapse)Author
2023-08-08llvm: finish converting intrinsicsJacob Young
2023-08-08llvm: convert vector reduction intrinsicsJacob Young
Scratch that thing I said about one pass. :)
2023-08-08Builder: simplify intrinsic tableJacob Young
This format removes back-references allowing it to be parsed in a single pass. It also reduces the number of kinds, simplifying the code.
2023-08-08llvm: finish converting attributes to use Builder and the C LLVM APIJacob Young
2023-08-08llvm: convert intrinsics to using `Builder`Jacob Young
2023-08-08Builder: fix builtin pseudo-instruction dumpingJacob Young
2023-08-08Builder: fix attribute spacingJacob Young
2023-08-05Merge pull request #16705 from antlilja/builder-intrinsicsJacob Young
Implement more intrinsics in new LLVM IR builder API and remove uses of LLVM owns API
2023-08-05llvm: add const addrspace castRobin Voetter
2023-08-06Use new LLVM IR builder API in bit op loweringantlilja
2023-08-06Implement bitop intrinsics in new LLVM IR builderantlilja
* llvm.bitreverse * llvm.bswap * llvm.ctpop * llvm.ctlz * llvm.cttz
2023-08-06Use new LLVM builder API in buildFloatOPantlilja
2023-08-06Implement fp intrinsics in new LLVM IR builderantlilja
Intrinsics implemented * llvm.ceil * llvm.cos * llvm.exp * llvm.exp2 * llvm.fabs * llvm.floor * llvm.log * llvm.log10 * llvm.log2 * llvm.round * llvm.sin * llvm.trunc * llvm.fma
2023-08-05cbe: don't emit traps in naked functionsJacob Young
Closes #16680
2023-08-01llvm: fix data layout calculation for experimental llvm targetsJacob Young
Closes #16616
2023-07-31std: finish cleanup up asmJacob Young
This also required implementing the necessary syntax in the x86_64 backend.
2023-07-31std: cleanup asm usageJacob Young
After fixing some issues with inline assembly in the C backend, the std cleanups have the side effect of making these functions compatible with the backend, allowing it to be used on linux without linking libc.
2023-07-29Merge pull request #16611 from xxxbxxx/packed-structJacob Young
codegen: fix various packed struct issues Closes #16609 Closes #15337
2023-07-29llvm: support read-write output constraints in assemblyJacob Young
Closes #15227
2023-07-29codegen: fix access to byte-aligned nested packed struct elemsXavier Bouchoux
When acessing a packed struct member via a byte aligned ptr (from the optimisation in Sema.structFieldPtrByIndex()) the codegen must apply the parent ptr packed_offset in addition to the field offset itself. resolves https://github.com/ziglang/zig/issues/16609
2023-07-29llvm: partial fix of store undefined to packed result locationXavier Bouchoux
prefer marking too few undefined bits, rather than too many that may overwrite nearby values. partially resolves https://github.com/ziglang/zig/issues/15337
2023-07-28llvm: fix SysV C abi for structs smaller than two eightbytesJacob Young
Closes #16038 Closes #16288
2023-07-27LLVM: always add argument attributes to callsAndrew Kelley
These are needed for correctness. There's no reason to only add them for function pointers. closes #16290
2023-07-26llvm: fix data layout on iosJacob Young
Closes #16549
2023-07-25frontend: forbid packed and extern tuplesAndrew Kelley
2023-07-25codegen/llvm: fix memset with vectors smaller than one byteXavier Bouchoux
The special case to take advantage of llvm's intrinsic was generating invalid llvm ir: ``` Invalid bitcast %60 = bitcast <2 x i2> %59 to i8, !dbg !3122 thread 145453 panic: LLVM module verification failed ```
2023-07-25make `@typeInfo` not return private declsJacob G-W
fixes #10731 Thanks @nektro for previous work in #14878 This change creates a small breaking change: It removes the `is_pub` field of a decl in `@typeInfo`
2023-07-23llvm: convert global assemblyJacob Young
2023-07-23llvm: convert inline assemblyJacob Young
Also, implement TODOs from a previous commit.
2023-07-23llvm: fix datalayout generation for more targetsJacob Young
Closes #16482
2023-07-23llvm: convert attributes and non-intrinsic callsJacob Young
2023-07-21llvm: fix building for 32-bit targetsAndrew Kelley
2023-07-20Merge pull request #16430 from jacobly0/llvm-builderAndrew Kelley
llvm: begin the journey of independence from llvm
2023-07-20llvm: cleanup LLVM IR dumpingJacob Young
2023-07-20llvm: add Builder trailing extra interfaceJacob Young
2023-07-19llvm: fix bootstrapJacob Young
2023-07-19llvm: fix various crashesJacob Young
2023-07-19llvm: minor fixesJacob Young
2023-07-19llvm: convert most instructionsJacob Young
2023-07-19llvm: convert cursor positioningJacob Young
2023-07-19llvm: convert basic block creationJacob Young
2023-07-19llvm: finish converting constantsJacob Young
2023-07-19llvm: cleanup management and implement more const functionsJacob Young
2023-07-19llvm: cleanup initJacob Young
2023-07-19llvm: finish converting `lowerValue`Jacob Young
2023-07-19llvm: convert all calls to `constInt`Jacob Young
2023-07-19llvm: remove more usages of `llvm.Type`Jacob Young
2023-07-19llvm: finish converting `lowerType`Jacob Young
2023-07-19llvm: compute data layout without help like a grownup compilerJacob Young
2023-07-19llvm: start tracking more things without relying on the llvm apiJacob Young