summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-04-20 11:05:06 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-04-22 23:14:57 -0400
commit4b4a8b60a5b403e02117ab0a30a386664845586b (patch)
tree9812fef655d88bf53723899b462f4f6abfbb9833 /docs
parentc29f0fa6ee831ec8a223561312d7176ef87a7ece (diff)
downloadhaskell-4b4a8b60a5b403e02117ab0a30a386664845586b.tar.gz
llvmGen: Remove -fast-llvm flag
Issue #18076 drew my attention to the undocumented `-fast-llvm` flag for the LLVM code generator introduced in 22733532171330136d87533d523f565f2a4f102f. Speaking to Moritz about this, the motivation for this flag was to avoid potential incompatibilities between LLVM and the assembler/linker toolchain by making LLVM responsible for machine-code generation. Unfortunately, this cannot possibly work: the LLVM backend's mangler performs a number of transforms on the assembler generated by LLVM that are necessary for correctness. These are currently: * mangling Haskell functions' symbol types to be `object` instead of `function` on ELF platforms (necessary for tables-next-to-code) * mangling AVX instructions to ensure that we don't assume alignment (which LLVM otherwise does) * mangling Darwin's subsections-via-symbols directives Given that these are all necessary I don't believe that we can support `-fast-llvm`. Let's rather remove it.
Diffstat (limited to 'docs')
-rw-r--r--docs/users_guide/expected-undocumented-flags.txt1
1 files changed, 0 insertions, 1 deletions
diff --git a/docs/users_guide/expected-undocumented-flags.txt b/docs/users_guide/expected-undocumented-flags.txt
index ea8543b58c..5e2101b03d 100644
--- a/docs/users_guide/expected-undocumented-flags.txt
+++ b/docs/users_guide/expected-undocumented-flags.txt
@@ -78,7 +78,6 @@
-fallow-overlapping-instances
-fallow-undecidable-instances
-farrows
--fast-llvm
-fbang-patterns
-fbuilding-cabal-package
-fconstraint-solver-iterations