ghc-6.10.1: The GHC API
Contents
Index
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
Instances
Eq
CmmExpr
Outputable
CmmExpr
UserOfLocalRegs
CmmExpr
cmmExprRep
::
CmmExpr
->
MachRep
maybeInvertCmmExpr
::
CmmExpr
->
Maybe
CmmExpr
data
CmmReg
Constructors
CmmLocal
LocalReg
CmmGlobal
GlobalReg
Instances
Eq
CmmReg
Ord
CmmReg
Outputable
CmmReg
DefinerOfLocalRegs
CmmReg
UserOfLocalRegs
CmmReg
cmmRegRep
::
CmmReg
->
MachRep
data
CmmLit
Constructors
CmmInt
Integer
MachRep
CmmFloat
Rational
MachRep
CmmLabel
CLabel
CmmLabelOff
CLabel
Int
CmmLabelDiffOff
CLabel
CLabel
Int
Instances
Eq
CmmLit
Outputable
CmmLit
cmmLitRep
::
CmmLit
->
MachRep
data
LocalReg
Constructors
LocalReg
!
Unique
MachRep
GCKind
Parameters: 1. Identifier 2. Type 3. Should the GC follow as a pointer
Instances
Eq
LocalReg
Ord
LocalReg
Outputable
LocalReg
Uniquable
LocalReg
DefinerOfLocalRegs
LocalReg
UserOfLocalRegs
LocalReg
localRegRep
::
LocalReg
->
MachRep
localRegGCFollow
::
LocalReg
->
GCKind
data
GCKind
Whether a
LocalReg
is a GC followable pointer
Constructors
GCKindPtr
GCKindNonPtr
Instances
Eq
GCKind
data
GlobalReg
Constructors
VanillaReg
!!
Int
FloatReg
!!
Int
DoubleReg
!!
Int
LongReg
!!
Int
Sp
SpLim
Hp
HpLim
CurrentTSO
CurrentNursery
HpAlloc
GCEnter1
GCFun
BaseReg
PicBaseReg
Instances
Eq
GlobalReg
Ord
GlobalReg
Show
GlobalReg
Outputable
GlobalReg
globalRegRep
::
GlobalReg
->
MachRep
hpReg
::
CmmReg
node
::
GlobalReg
class
DefinerOfLocalRegs
a
where
Methods
foldRegsDefd
:: (b ->
LocalReg
-> b) -> b -> a -> b
Instances
DefinerOfLocalRegs
LocalReg
DefinerOfLocalRegs
CmmReg
DefinerOfLocalRegs
Last
DefinerOfLocalRegs
Middle
DefinerOfLocalRegs
a =>
DefinerOfLocalRegs
([] a)
DefinerOfLocalRegs
a =>
DefinerOfLocalRegs
(
CmmKinded
a)
class
UserOfLocalRegs
a
where
Methods
foldRegsUsed
:: (b ->
LocalReg
-> b) -> b -> a -> b
Instances
UserOfLocalRegs
RegSet
UserOfLocalRegs
LocalReg
UserOfLocalRegs
CmmReg
UserOfLocalRegs
CmmExpr
UserOfLocalRegs
CmmCallTarget
UserOfLocalRegs
CmmStmt
UserOfLocalRegs
Last
UserOfLocalRegs
Middle
UserOfLocalRegs
a =>
UserOfLocalRegs
([] a)
UserOfLocalRegs
a =>
UserOfLocalRegs
(
ZLast
a)
UserOfLocalRegs
a =>
UserOfLocalRegs
(
CmmKinded
a)
UserOfLocalRegs
i =>
UserOfLocalRegs
(
GenBasicBlock
i)
UserOfLocalRegs
m =>
UserOfLocalRegs
(
ExtendWithSpills
m)
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
Instances
Eq
Area
Ord
Area
Outputable
Area
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