%
% (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}
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}
%************************************************************************
\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}
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