ghc-6.10.1: The GHC APIContentsIndex
CmmExpr
Synopsis
data CmmExpr
= CmmLit CmmLit
| CmmLoad CmmExpr MachRep
| CmmReg CmmReg
| CmmMachOp MachOp [CmmExpr]
| CmmRegOff CmmReg Int
| CmmStackSlot Area Int
cmmExprRep :: CmmExpr -> MachRep
maybeInvertCmmExpr :: CmmExpr -> Maybe CmmExpr
data CmmReg
= CmmLocal LocalReg
| CmmGlobal GlobalReg
cmmRegRep :: CmmReg -> MachRep
data CmmLit
= CmmInt Integer MachRep
| CmmFloat Rational MachRep
| CmmLabel CLabel
| CmmLabelOff CLabel Int
| CmmLabelDiffOff CLabel CLabel Int
cmmLitRep :: CmmLit -> MachRep
data LocalReg = LocalReg !Unique MachRep GCKind
localRegRep :: LocalReg -> MachRep
localRegGCFollow :: LocalReg -> GCKind
data GCKind
= GCKindPtr
| GCKindNonPtr
data GlobalReg
= VanillaReg !!Int
| FloatReg !!Int
| DoubleReg !!Int
| LongReg !!Int
| Sp
| SpLim
| Hp
| HpLim
| CurrentTSO
| CurrentNursery
| HpAlloc
| GCEnter1
| GCFun
| BaseReg
| PicBaseReg
globalRegRep :: GlobalReg -> MachRep
hpReg :: CmmReg
node :: GlobalReg
class DefinerOfLocalRegs a where
foldRegsDefd :: (b -> LocalReg -> b) -> b -> a -> b
class UserOfLocalRegs a where
foldRegsUsed :: (b -> LocalReg -> b) -> b -> a -> b
foldRegsDefd :: DefinerOfLocalRegs a => (b -> LocalReg -> b) -> b -> a -> b
foldRegsUsed :: UserOfLocalRegs a => (b -> LocalReg -> b) -> b -> a -> b
filterRegsUsed :: UserOfLocalRegs e => (LocalReg -> Bool) -> e -> RegSet
type RegSet = UniqSet LocalReg
emptyRegSet :: RegSet
elemRegSet :: LocalReg -> RegSet -> Bool
extendRegSet :: RegSet -> LocalReg -> RegSet
deleteFromRegSet :: RegSet -> LocalReg -> RegSet
mkRegSet :: [LocalReg] -> RegSet
plusRegSet :: RegSet -> RegSet -> RegSet
data Area
= RegSlot LocalReg
| CallArea BlockId Int Int
type StackSlotMap = FiniteMap LocalReg CmmExpr
getSlot :: StackSlotMap -> LocalReg -> (StackSlotMap, CmmExpr)
mkCallArea :: BlockId -> [a] -> Maybe [b] -> Area
outgoingSlot :: Area -> CmmExpr
areaId :: Area -> BlockId
areaSize :: Area -> Int
Documentation
data CmmExpr
Constructors
CmmLit CmmLit
CmmLoad CmmExpr MachRep
CmmReg CmmReg
CmmMachOp MachOp [CmmExpr]
CmmRegOff CmmReg Int
CmmStackSlot Area Int
show/hide Instances
cmmExprRep :: CmmExpr -> MachRep
maybeInvertCmmExpr :: CmmExpr -> Maybe CmmExpr
data CmmReg
Constructors
CmmLocal LocalReg
CmmGlobal GlobalReg
show/hide Instances
cmmRegRep :: CmmReg -> MachRep
data CmmLit
Constructors
CmmInt Integer MachRep
CmmFloat Rational MachRep
CmmLabel CLabel
CmmLabelOff CLabel Int
CmmLabelDiffOff CLabel CLabel Int
show/hide Instances
cmmLitRep :: CmmLit -> MachRep
data LocalReg
Constructors
LocalReg !Unique MachRep GCKindParameters: 1. Identifier 2. Type 3. Should the GC follow as a pointer
show/hide Instances
localRegRep :: LocalReg -> MachRep
localRegGCFollow :: LocalReg -> GCKind
data GCKind
Whether a LocalReg is a GC followable pointer
Constructors
GCKindPtr
GCKindNonPtr
show/hide Instances
data GlobalReg
Constructors
VanillaReg !!Int
FloatReg !!Int
DoubleReg !!Int
LongReg !!Int
Sp
SpLim
Hp
HpLim
CurrentTSO
CurrentNursery
HpAlloc
GCEnter1
GCFun
BaseReg
PicBaseReg
show/hide Instances
globalRegRep :: GlobalReg -> MachRep
hpReg :: CmmReg
node :: GlobalReg
class DefinerOfLocalRegs a where
Methods
foldRegsDefd :: (b -> LocalReg -> b) -> b -> a -> b
show/hide Instances
class UserOfLocalRegs a where
Methods
foldRegsUsed :: (b -> LocalReg -> b) -> b -> a -> b
show/hide Instances
foldRegsDefd :: DefinerOfLocalRegs a => (b -> LocalReg -> b) -> b -> a -> b
foldRegsUsed :: UserOfLocalRegs a => (b -> LocalReg -> b) -> b -> a -> b
filterRegsUsed :: UserOfLocalRegs e => (LocalReg -> Bool) -> e -> RegSet
type RegSet = UniqSet LocalReg
emptyRegSet :: RegSet
elemRegSet :: LocalReg -> RegSet -> Bool
extendRegSet :: RegSet -> LocalReg -> RegSet
deleteFromRegSet :: RegSet -> LocalReg -> RegSet
mkRegSet :: [LocalReg] -> RegSet
plusRegSet :: RegSet -> RegSet -> RegSet
data Area
A stack area is either the stack slot where a variable is spilled or the stack space where function arguments and results are passed.
Constructors
RegSlot LocalReg
CallArea BlockId Int Int
show/hide Instances
type StackSlotMap = FiniteMap LocalReg CmmExpr
getSlot :: StackSlotMap -> LocalReg -> (StackSlotMap, CmmExpr)
mkCallArea :: BlockId -> [a] -> Maybe [b] -> Area
outgoingSlot :: Area -> CmmExpr
areaId :: Area -> BlockId
areaSize :: Area -> Int
Produced by Haddock version 2.3.0