aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm
AgeCommit message (Collapse)Author
2023-11-19compiler: correct unnecessary uses of 'var'mlugg
2023-11-10BitcodeReader: followup cleanupJacob Young
2023-11-09Compilation: forward clang diagnostics to error bundlesJacob Young
2023-10-23Merge pull request #17651 from Vexu/error-limitAndrew Kelley
Make distinct error limit configurable (attempt #2)
2023-10-22remove uses of non-configurable `err_int`Veikka Tuominen
2023-10-21InternPool: store alignment of anon declsAndrew Kelley
Commit 5393e56500d499753dbc39704c0161b47d1e4d5c has a flaw pointed out by @mlugg: the `ty` field of pointer values changes when comptime values are pointer-casted. This commit introduces a new encoding which additionally stores the "original pointer type" which is used to store the alignment of the anonymous decl, and potentially other information in the future such as section and pointer address space. However, this new encoding is only used when the original pointer type differs from the casted pointer type in a meaningful way. I was able to make the LLVM backend and the C backend lower anonymous decls with the appropriate alignment, however I will need some help figuring out how to do this for the backends that lower anonymous decls via src/codegen.zig and the wasm backend.
2023-10-19link: initialize llvm before calling the llvm APIJacob Young
2023-10-19Builder: fix incorrect type for 32-bit systemsJacob Young
2023-10-04comp: add support for -fdata-sectionsJakub Konka
2023-09-19llvm: update address space definitions to LLVM 17Jacob Young
2023-09-19Builder: further constant select cleanupJacob Young
2023-09-19LLVM: update backend to LLVM 17Andrew Kelley
* LLVMConstSelect is removed (see https://discourse.llvm.org/t/rfc-remove-most-constant-expressions/63179) * a couple functions use uint64_t instead of int now which means we no longer need `@intCast`. release/17.x branch, commit 8f4dd44097c9ae25dd203d5ac87f3b48f854bba8
2023-09-19update for LLVM 17 new target dataAndrew Kelley
New OSs: * UEFI * LiteOS New ABI: * OpenHOS Also update the LLD driver API wrappers.
2023-08-20Revert "llvm: fix bootstrap"Jacob Young
This reverts commit ea72fea1a4e2bc8309c211308f49f7f2c38507be.
2023-08-13cmake: fix auto-detection of various host targetsJacob Young
Closes #16800
2023-08-09llvm: enable even without libllvm linkedJacob Young
2023-08-08llvm: fix alias issuesJacob Young
2023-08-08llvm: finish converting globalsJacob Young
2023-08-08Builder: fix enough bugs to pass the behavior testsJacob Young
without using any information from the LLVM API
2023-08-08llvm: cleanup even more unused LLVM API bindingsJacob Young
2023-08-08llvm: finish converting instructionsJacob Young
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-06Implement bitop intrinsics in new LLVM IR builderantlilja
* llvm.bitreverse * llvm.bswap * llvm.ctpop * llvm.ctlz * llvm.cttz
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-01llvm: fix data layout calculation for experimental llvm targetsJacob Young
Closes #16616
2023-07-28llvm: fix SysV C abi for structs smaller than two eightbytesJacob Young
Closes #16038 Closes #16288
2023-07-25frontend: forbid packed and extern tuplesAndrew Kelley
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: convert attributes and non-intrinsic callsJacob Young
2023-07-21llvm: fix building for 32-bit targetsAndrew Kelley
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