summaryrefslogtreecommitdiff
path: root/ghc/compiler/codeGen/CgLoop1.lhi
blob: ef8dd2d669484e557dbea97263e3846ee93d5deb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
\begin{code}
interface CgLoop1 where
import PreludeStdIO	( Maybe )

import CgBindery	( CgBindings(..), CgIdInfo(..),
			  VolatileLoc, StableLoc,
			  nukeVolatileBinds,
			  maybeAStkLoc, maybeBStkLoc
		 	)
import CgUsages		( getSpBRelOffset )

import AbsCSyn		( RegRelative )
import CgMonad		( FCode(..) )
import ClosureInfo	( LambdaFormInfo )
import HeapOffs		( VirtualSpAOffset(..), VirtualSpBOffset(..) )
import Id		( IdEnv(..), Id(..) )

type CgBindings = IdEnv CgIdInfo

data CgIdInfo
  = MkCgIdInfo	Id	-- Id that this is the info for
		VolatileLoc
		StableLoc
		LambdaFormInfo

data VolatileLoc
data StableLoc
data LambdaFormInfo

nukeVolatileBinds :: CgBindings -> CgBindings
maybeAStkLoc	  :: StableLoc  -> Maybe VirtualSpAOffset
maybeBStkLoc	  :: StableLoc  -> Maybe VirtualSpBOffset

getSpBRelOffset :: VirtualSpBOffset -> FCode RegRelative
\end{code}