LLVM: Support LLVM 2.9 (#5103) Instead of using the GNU As subsection feature on Linux/Windows for TNTC we now use the LLVM Mangler on all platforms.
Merge branch 'trac_5025' of https://github.com/thoughtpolice/ghc * 'trac_5025' of https://github.com/thoughtpolice/ghc: Teach GHC to compile objective-c files; trac #5025 Conflicts: compiler/main/DriverPipeline.hs
Merge _stub.o files into the main .o file (Fixes #3687 and #706) Now GHC still generates the _stub.c files, but the object file is automatically merged into the main .o file for a module. This means that build systems (including GHC's own) no longer need to worry about looking for _stub.o files and including them when linking. I had to do lots of refactoring in DriverPipeline to make this work; now there's a monad to carry around all the information, and everything is a lot tidier. The _stub.c is now created as a temporary file and removed after compilation (unless the -keep-tmp-files flag is on).
Remove dead code, now that -fvia-c is a no-op
Teach GHC to compile objective-c files; trac #5025
Add "cmmcpp" as a Haskellish source suffix
Add a debugTrace for the phases that we run
LLVM: Add in new LLVM mangler for implementing TNTC on OSX
Remove LlvmAs phase as the llvm opt tool now handles this phase This phase originally invoked the llvm-as tool that turns a textual llvm assembly file into a bit code file for the rest of llvm to deal with. Now the llvm opt tool can do this itself, so we don't need to use llvm-as anymore.
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.
Whitespace only
Include HsVersions.h where necessary
Fix warnings in main/DriverPhases
Use System.FilePath
Move OPTIONS pragmas above comments Fixes building with -Werror (i.e. validate) and GHC < 6.6
Fix CodingStyle#Warnings URLs
Use OPTIONS rather than OPTIONS_GHC for pragmas Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modules
Remove ILX from the GHC altogether (although I left the source file IlxGen in case anyone wants to see it)
Add a C++ phase. Fixes bug #800