From 498c27f87c0f9a463b4ed5f838351cc65ea04572 Mon Sep 17 00:00:00 2001 From: simonmar Date: Thu, 28 Jul 2005 11:19:03 +0000 Subject: [PATCH] [project @ 2005-07-28 11:19:03 by simonmar] Fix a bad space leak in the native code generator: turn a couple of lazy tuple matches into strict matches. --- ghc/compiler/nativeGen/AsmCodeGen.lhs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ghc/compiler/nativeGen/AsmCodeGen.lhs b/ghc/compiler/nativeGen/AsmCodeGen.lhs index 43eed18..831accf 100644 --- a/ghc/compiler/nativeGen/AsmCodeGen.lhs +++ b/ghc/compiler/nativeGen/AsmCodeGen.lhs @@ -111,15 +111,17 @@ The machine-dependent bits break down as follows: nativeCodeGen :: DynFlags -> [Cmm] -> UniqSupply -> IO Pretty.Doc nativeCodeGen dflags cmms us - = let ((ppr_cmms, insn_sdoc, imports), _) = initUs us $ + = let (res, _) = initUs us $ cgCmm (concat (map add_split cmms)) cgCmm :: [CmmTop] -> UniqSM (Cmm, Pretty.Doc, [CLabel]) cgCmm tops = lazyMapUs (cmmNativeGen dflags) tops `thenUs` \ results -> - let (cmms,docs,imps) = unzip3 results in + case unzip3 results of { (cmms,docs,imps) -> returnUs (Cmm cmms, my_vcat docs, concat imps) - in do + } + in + case res of { (ppr_cmms, insn_sdoc, imports) -> do dumpIfSet_dyn dflags Opt_D_dump_opt_cmm "Optimised Cmm" (pprCmms [ppr_cmms]) return (insn_sdoc Pretty.$$ dyld_stubs imports #if HAVE_SUBSECTIONS_VIA_SYMBOLS @@ -129,6 +131,7 @@ nativeCodeGen dflags cmms us Pretty.$$ Pretty.text ".subsections_via_symbols" #endif ) + } where -- 1.7.10.4