summaryrefslogtreecommitdiff
path: root/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/llvmGen/LlvmCodeGen/CodeGen.hs')
-rw-r--r--compiler/llvmGen/LlvmCodeGen/CodeGen.hs21
1 files changed, 6 insertions, 15 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
index eb002742e1..c9ad76efd5 100644
--- a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
+++ b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
@@ -29,28 +29,19 @@ import Util
import Data.List ( partition )
import Control.Monad ( liftM )
-type LlvmStatements = OrdList LlvmStatement
+type LlvmStatements = OrdList LlvmStatement
-- -----------------------------------------------------------------------------
-- | Top-level of the LLVM proc Code generator
--
genLlvmProc :: LlvmEnv -> RawCmmTop -> UniqSM (LlvmEnv, [LlvmCmmTop])
-genLlvmProc env (CmmData _ _)
- = return (env, [])
-
-genLlvmProc env (CmmProc _ _ (ListGraph []))
- = return (env, [])
-
-genLlvmProc env (CmmProc info lbl (ListGraph blocks))
- = do
- (env', lmblocks, lmdata) <- basicBlocksCodeGen env blocks ([], [])
-
- let proc = CmmProc info lbl (ListGraph lmblocks)
- let tops = lmdata ++ [proc]
-
- return (env', tops)
+genLlvmProc env (CmmProc info lbl (ListGraph blocks)) = do
+ (env', lmblocks, lmdata) <- basicBlocksCodeGen env blocks ([], [])
+ let proc = CmmProc info lbl (ListGraph lmblocks)
+ return (env', proc:lmdata)
+genLlvmProc _ _ = panic "genLlvmProc: case that shouldn't reach here!"
-- -----------------------------------------------------------------------------
-- * Block code generation