Add new LLVM code generator to GHC. (Version 2)
authorDavid Terei <davidterei@gmail.com>
Tue, 15 Jun 2010 09:47:14 +0000 (09:47 +0000)
committerDavid Terei <davidterei@gmail.com>
Tue, 15 Jun 2010 09:47:14 +0000 (09:47 +0000)
commit49a8e5c021009430d373d6224b29004c7d18c408
tree5e49c02cc6ad756d92ef71d4ab16338b278352a6
parent0c41772cba7ec3f558cd2619716c7db771eae935
Add new LLVM code generator to GHC. (Version 2)

This was done as part of an honours thesis at UNSW, the paper describing the
work and results can be found at:

http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf

A Homepage for the backend can be found at:

http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM

Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
are within 5% slower than the NCG and generally better than the C code
generator.  For some code though, such as the DPH projects benchmark, the LLVM
code generator outperforms the NCG and C code generator by about a 25%
reduction in run times.
33 files changed:
compiler/cmm/Cmm.hs
compiler/cmm/CmmUtils.hs
compiler/codeGen/CgForeignCall.hs
compiler/codeGen/CgUtils.hs
compiler/ghc.cabal.in
compiler/ghc.mk
compiler/llvmGen/Llvm.hs [new file with mode: 0644]
compiler/llvmGen/Llvm/AbsSyn.hs [new file with mode: 0644]
compiler/llvmGen/Llvm/PpLlvm.hs [new file with mode: 0644]
compiler/llvmGen/Llvm/Types.hs [new file with mode: 0644]
compiler/llvmGen/LlvmCodeGen.hs [new file with mode: 0644]
compiler/llvmGen/LlvmCodeGen/Base.hs [new file with mode: 0644]
compiler/llvmGen/LlvmCodeGen/CodeGen.hs [new file with mode: 0644]
compiler/llvmGen/LlvmCodeGen/Data.hs [new file with mode: 0644]
compiler/llvmGen/LlvmCodeGen/Ppr.hs [new file with mode: 0644]
compiler/llvmGen/LlvmCodeGen/Regs.hs [new file with mode: 0644]
compiler/main/CodeOutput.lhs
compiler/main/DriverPhases.hs
compiler/main/DriverPipeline.hs
compiler/main/DynFlags.hs
compiler/main/SysTools.lhs
compiler/nativeGen/Alpha/Regs.hs
compiler/nativeGen/AsmCodeGen.lhs
compiler/nativeGen/PPC/CodeGen.hs
compiler/nativeGen/PPC/Regs.hs
compiler/nativeGen/SPARC/CodeGen/Base.hs
compiler/nativeGen/SPARC/Regs.hs
compiler/nativeGen/X86/CodeGen.hs
compiler/nativeGen/X86/Regs.hs
compiler/typecheck/TcForeign.lhs
driver/mangler/ghc-asm.lprl
mk/config.mk.in
rules/build-perl.mk