X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FCodeOutput.lhs;h=bc2dd1eafc5d225bd3a4584b1c6f7471efdd08e8;hb=e95ee1f718c6915c478005aad8af81705357d6ab;hp=83f23cfbc3da1990628fc3f87242f2cefd20be8c;hpb=3891512c4c770dadd0372ad84d2dec72b34652d2;p=ghc-hetmet.git diff --git a/compiler/main/CodeOutput.lhs b/compiler/main/CodeOutput.lhs index 83f23cf..bc2dd1e 100644 --- a/compiler/main/CodeOutput.lhs +++ b/compiler/main/CodeOutput.lhs @@ -9,9 +9,11 @@ module CodeOutput( codeOutput, outputForeignStubs ) where #include "HsVersions.h" #ifndef OMIT_NATIVE_CODEGEN -import UniqSupply ( mkSplitUniqSupply ) import AsmCodeGen ( nativeCodeGen ) #endif +import LlvmCodeGen ( llvmCodeGen ) + +import UniqSupply ( mkSplitUniqSupply ) #ifdef JAVA import JavaGen ( javaGen ) @@ -81,6 +83,7 @@ codeOutput dflags this_mod location foreign_stubs pkg_deps flat_abstractC HscInterpreted -> return (); HscAsm -> outputAsm dflags filenm flat_abstractC; HscC -> outputC dflags filenm flat_abstractC pkg_deps; + HscLlvm -> outputLlvm dflags filenm flat_abstractC; HscJava -> #ifdef JAVA outputJava dflags filenm mod_name tycons core_binds; @@ -168,6 +171,20 @@ outputAsm _ _ _ %************************************************************************ %* * +\subsection{LLVM} +%* * +%************************************************************************ + +\begin{code} +outputLlvm :: DynFlags -> FilePath -> [RawCmm] -> IO () +outputLlvm dflags filenm flat_absC + = do ncg_uniqs <- mkSplitUniqSupply 'n' + doOutput filenm $ \f -> llvmCodeGen dflags f ncg_uniqs flat_absC +\end{code} + + +%************************************************************************ +%* * \subsection{Java} %* * %************************************************************************