
#10074: Implement the 'Improved LLVM Backend' proposal -------------------------------------+------------------------------------- Reporter: thoughtpolice | Owner: angerman Type: task | Status: new Priority: high | Milestone: 8.4.1 Component: Compiler (LLVM) | Version: Resolution: | Keywords: llvm, codegen Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #11295, #12470 | Differential Rev(s): Phab:D530 Wiki Page: | wiki:ImprovedLLVMBackend | -------------------------------------+------------------------------------- Comment (by awson): Ah, it looks so much happened under the hood which I wasn't aware of! A couple of comments and answers then: 1. `-flto` doesn't work on windows even on the current llvm5 and won't in the foreseeable future, because it requires GOLD linker plugin to work on unices, and we have neither on windows. 2. AFAIUI, Matthias Braun's early advice to use `clang` driver was mostly inspired by his ignorance of how different STG execution model is from that of C, later he understood this and stated that since we need `-fllvm` anyway, i.e. need to bypass `clang`'s "high-level" predefined `-OX` sets of options then either using `clang` or `opt/llc` drivers is "equally good/bad" in our use case. 3. Btw, why can't we simply do `ghc -> llvm ir -> clang -> mangler -> as -> object` if we still need the mangler? Or we can but *don't want*? 4. Even if not using `clang`, a part of your patches in [https://phabricator.haskell.org/D3352] still looks relevant, e.g. we can drop `pprLlvmHeader/moduleLayout` thingy since it is inferred by LLVM tools from module target triple anyway. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10074#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler