[project @ 1996-04-05 08:26:04 by partain]
[ghc-hetmet.git] / ghc / compiler / codeGen / CgLoop1.lhi
1 \begin{code}
2 interface CgLoop1 where
3 import PreludeStdIO     ( Maybe )
4
5 import CgBindery        ( CgBindings(..), CgIdInfo(..),
6                           VolatileLoc, StableLoc,
7                           nukeVolatileBinds,
8                           maybeAStkLoc, maybeBStkLoc
9                         )
10 import CgUsages         ( getSpBRelOffset )
11
12 import AbsCSyn          ( RegRelative )
13 import CgMonad          ( FCode(..) )
14 import ClosureInfo      ( LambdaFormInfo )
15 import HeapOffs         ( VirtualSpAOffset(..), VirtualSpBOffset(..) )
16 import Id               ( IdEnv(..), Id(..) )
17
18 type CgBindings = IdEnv CgIdInfo
19
20 data CgIdInfo
21   = MkCgIdInfo  Id      -- Id that this is the info for
22                 VolatileLoc
23                 StableLoc
24                 LambdaFormInfo
25
26 data VolatileLoc
27 data StableLoc
28 data LambdaFormInfo
29
30 nukeVolatileBinds :: CgBindings -> CgBindings
31 maybeAStkLoc      :: StableLoc  -> Maybe VirtualSpAOffset
32 maybeBStkLoc      :: StableLoc  -> Maybe VirtualSpBOffset
33
34 getSpBRelOffset :: VirtualSpBOffset -> FCode RegRelative
35 \end{code}