summaryrefslogtreecommitdiff
path: root/llvm-targets
Commit message (Collapse)AuthorAgeFilesLines
* Add initial support for LoongArch Architecture.lrzlin2022-12-081-0/+2
|
* llvm-targets: Add datalayouts for big-endian AArch64 targetsBen Gamari2022-10-251-0/+3
| | | | | | Fixes #22311. Thanks to @zeldin for the patch.
* Remove the traces of i386-*-openbsd, long live amd64Greg Steuck2022-06-271-1/+0
| | | | | | | | | | | OpenBSD will not ship any ghc packages on i386 starting with 7.2 release. This means there will not be a bootstrap compiler easily available. The last available binaries are ghc-8.10.6 which is already not supported as bootstrap for HEAD. See here for more information: https://marc.info/?l=openbsd-ports&m=165060700222580&w=2
* Add OpenBSD to llvm-targetsGreg Steuck2021-12-141-0/+2
| | | | | | | | | | | | This improves some tests that previously failed with: ghc: panic! (the 'impossible' happened) GHC version 9.3.20211211: Failed to lookup LLVM data layout Target: x86_64-unknown-openbsd Added the new generated lines to `llvm-targets` on an openbsd 7.0-current with clang 11.1.0.
* Support NetBSD/aarch64 via LLVM codegenPHO2021-05-221-0/+1
| | | | Only adding "aarch64-unknown-netbsd" to gen-data-layout.sh was sufficient to get it working. No other changes were strictly required.
* [llvm/darwin] change vortex cpu to genericMoritz Angermann2021-03-211-1/+1
| | | | | For now only the apple flavoured llvm knows vortex, as we build against other toolchains, lets stay with generic for now.
* Implement riscv64 LLVM backendAndreas Schwab2021-03-051-0/+2
| | | | This enables a registerised build for the riscv64 architecture.
* AArch64/arm64 adjustmentsMoritz Angermann2020-11-151-24/+25
| | | | | | | | This addes the necessary logic to support aarch64 on elf, as well as aarch64 on mach-o, which Apple calls arm64. We change architecture name to AArch64, which is the official arm naming scheme.
* llvm-targets: Add i686 targetsBen Gamari2020-08-141-0/+3
| | | | Addresses #18422.
* llvm-targets: Add arm-unknown-linux-gnueabiIlias Tsitsimpis2020-02-281-0/+1
| | | | | Add arm-unknown-linux-gnueabi, which is used by Debian's ARM EABI port (armel), as an LLVM target.
* llvm-targets: Update with Clang 9wip/llvm9Ben Gamari2019-11-151-23/+23
|
* Revert "Replace freebsd-gnueabihf with freebsd"Ben Gamari2019-10-291-2/+2
| | | | | This reverts commit aa31ceaf7568802590f73a740ffbc8b800096342 as suggested in #17392.
* Implement s390x LLVM backend.Stefan Schulze Frielinghaus2019-10-221-0/+1
| | | | | | This patch adds support for the s390x architecture for the LLVM code generator. The patch includes a register mapping of STG registers onto s390x machine registers which enables a registerised build.
* Replace freebsd-gnueabihf with freebsdMatthew Bauer2019-10-221-2/+2
| | | | | | | | | | | FreeBSD does not support GNU libc, so it makes no sense to use this triple. Most likely previous builds were just using the FreeBSD libc instead of gnueabihf. To fix this, we should just use armv6-unknown-freebsd and armv7-unknown-freebsd triples. Note that both of these are actually "soft-float", not "hard-float". FreeBSD has never officially released hard-float arm32: https://wiki.freebsd.org/ARMTier1
* Add musl systems to llvm-targetsMatthew Bauer2019-10-041-0/+13
| | | | | | This was done in Nixpkgs, but never upstreamed. Musl is pretty much the same as gnu, but with a different libc. I’ve used the same values for everything.
* Add a few missing llvm-targetsBen Gamari2019-06-131-4/+6
| | | | | | This should finally fix #14261. [skip ci]
* llvm-targets: Add armv7l-unknown-linux-gnueabiBen Gamari2019-06-121-0/+1
| | | | | | Fixes #15208. [skip ci]
* llvm-targets: Add x86_64 android layoutMoritz Angermann2019-06-071-0/+1
|
* llvm-targets: Add amd64-unknown-freebsd tripleBen Gamari2018-12-131-0/+1
| | | | | | | 396aac4c65a47b6252e0a73d2a3066e924d53f11 added the amd64-portbld-freebsd triple but #15718 suggests that we should rather be using x86_64-unknown-freebsd. Not knowing which is correct I've left the amd64-portbld- triplet in place.
* Add FreeBSD amd64 LLVM targetViktor Dukhovni2018-08-091-0/+1
|
* Add support for FreeBSD armBen Gamari2018-06-071-0/+3
| | | | | | | | | | | | Test Plan: Tested on armv6, armv7 and aarch64 on FreeBSD 12-CURRENT. Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd, carter Differential Revision: https://phabricator.haskell.org/D4810
* Add llvm-target for powerpc64le-unknown-linuxAlan Mock2018-06-021-0/+1
| | | | | | | | | | | | Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, carter GHC Trac Issues: #15212 Differential Revision: https://phabricator.haskell.org/D4765
* llvm-targets: Add versioned ARM targetsGuillaume GARDET2018-05-301-1/+3
| | | | | Namely armv6l-unknown-linux-gnueabihf and armv7l-unknown-linux-gnueabihf.
* llvm-targets: drop soft-floatMoritz Angermann2017-09-271-4/+4
| | | | | | | | | | | | | | | | | | Summary: The llvm-targets file records `mattr` values, and while interrogating `clang` for the target, we might stumble upon `+soft-float-abi`, however ghc does not support full soft-float, and as such passing `+soft-float` to `llc` will result in segfaults for any function passing float registers F1, ... in the ARM Instruction Selection Pass. Reviewers: bgamari, austin Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4030
* Additional LLVM_TARGET logic.Moritz Angermann2017-09-231-3/+4
| | | | | | | | | | | | | | | | | | Summary: This should help resolve the compilcation that came up in Trac #14261 Test Plan: validate on various platforms Reviewers: trofi, bgamari, austin, hvr Reviewed By: trofi Subscribers: rwbarton, thomie, erikd GHC Trac Issues: #14261 Differential Revision: https://phabricator.haskell.org/D4004
* Clean up opt and llcMoritz Angermann2017-09-061-0/+22
The LLVM backend shells out to LLVMs `opt` and `llc` tools. This clean up introduces a shared data structure to carry the arguments we pass to each tool so that corresponding flags are next to each other. It drops the hard coded data layouts in favor of using `-mtriple` and have LLVM infer them. Furthermore we add `clang` as a proper tool, so we don't rely on assuming that `clang` is called `clang` on the `PATH` when using `clang` as the assembler. Finally this diff also changes the type of `optLevel` from `Int` to `Word`, as we do not have negative optimization levels. Reviewers: erikd, hvr, austin, rwbarton, bgamari, kavon Reviewed By: kavon Subscribers: michalt, Ericson2314, ryantrinkle, dfeuer, carter, simonpj, kavon, simonmar, thomie, erikd, snowleopard Differential Revision: https://phabricator.haskell.org/D3352