| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Only adding "aarch64-unknown-netbsd" to gen-data-layout.sh was sufficient to get it working. No other changes were strictly required.
|
|
|
|
|
| |
For now only the apple flavoured llvm knows vortex, as we build
against other toolchains, lets stay with generic for now.
|
|
|
|
| |
This enables a registerised build for the riscv64 architecture.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Addresses #18422.
|
|
|
|
|
| |
Add arm-unknown-linux-gnueabi, which is used by Debian's ARM EABI port
(armel), as an LLVM target.
|
| |
|
|
|
|
|
| |
This reverts commit aa31ceaf7568802590f73a740ffbc8b800096342 as
suggested in #17392.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This should finally fix #14261.
[skip ci]
|
|
|
|
|
|
| |
Fixes #15208.
[skip ci]
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: bgamari
Reviewed By: bgamari
Subscribers: rwbarton, thomie, carter
GHC Trac Issues: #15212
Differential Revision: https://phabricator.haskell.org/D4765
|
|
|
|
|
| |
Namely armv6l-unknown-linux-gnueabihf and
armv7l-unknown-linux-gnueabihf.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
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
|