985529ba8402be3a2b1b37ccb84e16a2d30f5b0d
[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, nukeVolatileBinds
7                         )
8 import CgUsages         ( getSpBRelOffset )
9
10 import AbsCSyn          ( RegRelative )
11 import CgMonad          ( FCode(..), StableLoc, maybeAStkLoc, maybeBStkLoc )
12 import ClosureInfo      ( LambdaFormInfo )
13 import HeapOffs         ( VirtualSpAOffset(..), VirtualSpBOffset(..) )
14 import Id               ( IdEnv(..), Id(..) )
15
16 type CgBindings = IdEnv CgIdInfo
17
18 data CgIdInfo
19   = MkCgIdInfo  Id      -- Id that this is the info for
20                 VolatileLoc
21                 StableLoc
22                 LambdaFormInfo
23
24 data VolatileLoc
25 data StableLoc
26 data LambdaFormInfo
27
28 nukeVolatileBinds :: CgBindings -> CgBindings
29 maybeAStkLoc      :: StableLoc  -> Maybe VirtualSpAOffset
30 maybeBStkLoc      :: StableLoc  -> Maybe VirtualSpBOffset
31
32 getSpBRelOffset :: VirtualSpBOffset -> FCode RegRelative
33 \end{code}