[GHC] #10074: Implement the 'Improved LLVM Backend' proposal

GHC ghc-devs at haskell.org
Sun Mar 12 04:01:22 UTC 2017


#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           |
-------------------------------------+-------------------------------------
Changes (by angerman):

 * owner:  thoughtpolice => angerman


Comment:

 Ok. Let's do this. I will deviate a bit from the plan in the proposal
 though. The rough idea is:

 - replace opt+llc with clang. This does imply that we loose the mangler,
 and probably won't be able to do `-split-obj` at all.
 - build a release llvm-clang with necessary ghc changes, and call this
 `ghc-clang`, until we all ghc relevant patches are upstream in llvm.
 - provide binary distributions for said `ghc-clang` for at least all tire1
 platforms. Other platform will have to build clang from source.

 This should hopefully allow us to drop quite a bit of code from the llvm
 backend. It might re-introduce some new bugs. We do have quite a few hacks
 here and there to work around bugs in the llvm toolchain, for which we do
 not necessarily know if they are still present in the llvm toolchain we
 currently support.

 This should allow us to pin the llvm backend to a certain (potentially
 customized) clang version. This should be an interim solution only though.
 Hopefully we'll have all the necessary changes in llvm upstreamed by the
 time llvm5 (~6mo from now) or llvm6 (~12mo from now), will be released.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10074#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list