X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FAsmCodeGen.lhs;h=8fdd31a40d8e572668d377a9b125632ffd94ffe8;hb=272f0ba89eca1d9fc700cf4c27b9f8c3e23d6fe8;hp=ebff1f0dbae8376035857198827d9bc996ba33db;hpb=b8c0cca3b6d0203144bf4ef213be4597ce86eb33;p=ghc-hetmet.git diff --git a/compiler/nativeGen/AsmCodeGen.lhs b/compiler/nativeGen/AsmCodeGen.lhs index ebff1f0..8fdd31a 100644 --- a/compiler/nativeGen/AsmCodeGen.lhs +++ b/compiler/nativeGen/AsmCodeGen.lhs @@ -7,11 +7,11 @@ -- ----------------------------------------------------------------------------- \begin{code} -{-# OPTIONS_GHC -w #-} +{-# OPTIONS -w #-} -- The above warning supression flag is a temporary kludge. -- While working on this module you are encouraged to remove it and fix -- any warnings in the module. See --- http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings -- for details module AsmCodeGen ( nativeCodeGen ) where @@ -197,9 +197,10 @@ cmmNativeGens dflags h us (cmm : cmms) impAcc profAcc else [] -- force evaulation of imports and lsPprNative to avoid space leak - seqString (showSDoc $ vcat $ map ppr imports) - `seq` lsPprNative - `seq` cmmNativeGens dflags h us' cmms + seqString (showSDoc $ vcat $ map ppr imports) `seq` return () + lsPprNative `seq` return () + + cmmNativeGens dflags h us' cmms (imports : impAcc) ((lsPprNative, colorStats, linearStats) : profAcc) @@ -267,15 +268,6 @@ cmmNativeGen dflags us cmm emptyUFM $ map RealReg allocatableRegs - -- aggressively coalesce moves between virtual regs - let (coalesced, usCoalesce) - = {-# SCC "regCoalesce" #-} - initUs usLive $ regCoalesce withLiveness - - dumpIfSet_dyn dflags - Opt_D_dump_asm_coalesce "Reg-Reg moves coalesced" - (vcat $ map ppr coalesced) - -- if any of these dump flags are turned on we want to hang on to -- intermediate structures in the allocator - otherwise tell the -- allocator to ditch them early so we don't end up creating space leaks. @@ -287,12 +279,12 @@ cmmNativeGen dflags us cmm -- graph coloring register allocation let ((alloced, regAllocStats), usAlloc) = {-# SCC "regAlloc(color)" #-} - initUs usCoalesce + initUs usLive $ Color.regAlloc generateRegAllocStats alloc_regs (mkUniqSet [0..maxSpillSlots]) - coalesced + withLiveness -- dump out what happened during register allocation dumpIfSet_dyn dflags @@ -311,10 +303,11 @@ cmmNativeGen dflags us cmm then Just regAllocStats else Nothing -- force evaluation of the Maybe to avoid space leak - mPprStats - `seq` return ( alloced, usAlloc - , mPprStats - , Nothing) + mPprStats `seq` return () + + return ( alloced, usAlloc + , mPprStats + , Nothing) else do -- do linear register allocation @@ -333,10 +326,11 @@ cmmNativeGen dflags us cmm then Just (catMaybes regAllocStats) else Nothing -- force evaluation of the Maybe to avoid space leak - mPprStats - `seq` return ( alloced, usAlloc - , Nothing - , mPprStats) + mPprStats `seq` return () + + return ( alloced, usAlloc + , Nothing + , mPprStats) ---- shortcut branches let shorted =