[project @ 2002-11-21 17:54:17 by simonpj]
[ghc-hetmet.git] / ghc / compiler / codeGen / CgStackery.lhs
index 3a2598e..58733ce 100644 (file)
@@ -1,7 +1,7 @@
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgStackery.lhs,v 1.18 2001/08/31 12:39:06 rje Exp $
+% $Id: CgStackery.lhs,v 1.22 2002/09/13 15:02:29 simonpj Exp $
 %
 \section[CgStackery]{Stack management functions}
 
@@ -27,10 +27,10 @@ import AbsCUtils    ( mkAbstractCs, getAmodeRep )
 import PrimRep         ( getPrimRepSize, PrimRep(..), isFollowableRep )
 import CmdLineOpts     ( opt_SccProfilingOn, opt_GranMacros )
 import Panic           ( panic )
-import Constants       ( uF_SIZE, sCC_UF_SIZE, gRAN_UF_SIZE, 
-                         sEQ_FRAME_SIZE, sCC_SEQ_FRAME_SIZE, gRAN_SEQ_FRAME_SIZE )
+import Constants
+import Util            ( sortLt )
 
-import IOExts          ( trace )
+import TRACE           ( trace )
 \end{code}
 
 %************************************************************************
@@ -221,11 +221,11 @@ getFinalStackHW fcode = do
 \end{code}
 
 \begin{code}
-updateFrameSize | opt_SccProfilingOn = sCC_UF_SIZE
+updateFrameSize | opt_SccProfilingOn = pROF_UF_SIZE
                | opt_GranMacros     = trace ("updateFrameSize = " ++ (show gRAN_UF_SIZE))gRAN_UF_SIZE
                | otherwise          = uF_SIZE
 
-seqFrameSize    | opt_SccProfilingOn  = sCC_SEQ_FRAME_SIZE
+seqFrameSize    | opt_SccProfilingOn  = pROF_SEQ_FRAME_SIZE
                | opt_GranMacros      = gRAN_SEQ_FRAME_SIZE
                | otherwise           = sEQ_FRAME_SIZE
 \end{code}                     
@@ -242,7 +242,7 @@ Explicitly free some stack space.
 addFreeStackSlots :: [VirtualSpOffset] -> Slot -> Code
 addFreeStackSlots extra_free slot = do
        ((vsp, free, real, hw),heap_usage) <- getUsage
-       let all_free = addFreeSlots free (zip extra_free (repeat slot))
+       let all_free = addFreeSlots free (zip (sortLt (<) extra_free) (repeat slot))
        let (new_vsp, new_free) = trim vsp all_free
        let new_usage = ((new_vsp, new_free, real, hw), heap_usage)
        setUsage new_usage