Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data CmmExpr
- cmmExprType :: DynFlags -> CmmExpr -> CmmType
- cmmExprWidth :: DynFlags -> CmmExpr -> Width
- cmmExprAlignment :: CmmExpr -> Alignment
- maybeInvertCmmExpr :: CmmExpr -> Maybe CmmExpr
- data CmmReg
- cmmRegType :: DynFlags -> CmmReg -> CmmType
- cmmRegWidth :: DynFlags -> CmmReg -> Width
- data CmmLit
- cmmLitType :: DynFlags -> CmmLit -> CmmType
- data LocalReg = LocalReg !Unique CmmType
- localRegType :: LocalReg -> CmmType
- data GlobalReg
- = VanillaReg !Int VGcPtr
- | FloatReg !Int
- | DoubleReg !Int
- | LongReg !Int
- | XmmReg !Int
- | YmmReg !Int
- | ZmmReg !Int
- | Sp
- | SpLim
- | Hp
- | HpLim
- | CCCS
- | CurrentTSO
- | CurrentNursery
- | HpAlloc
- | EagerBlackholeInfo
- | GCEnter1
- | GCFun
- | BaseReg
- | MachSp
- | UnwindReturnReg
- | PicBaseReg
- isArgReg :: GlobalReg -> Bool
- globalRegType :: DynFlags -> GlobalReg -> CmmType
- spReg :: CmmReg
- hpReg :: CmmReg
- spLimReg :: CmmReg
- hpLimReg :: CmmReg
- nodeReg :: CmmReg
- currentTSOReg :: CmmReg
- currentNurseryReg :: CmmReg
- hpAllocReg :: CmmReg
- cccsReg :: CmmReg
- node :: GlobalReg
- baseReg :: CmmReg
- data VGcPtr
- class Ord r => DefinerOfRegs r a
- class Ord r => UserOfRegs r a
- foldRegsDefd :: DefinerOfRegs r a => DynFlags -> (b -> r -> b) -> b -> a -> b
- foldRegsUsed :: UserOfRegs r a => DynFlags -> (b -> r -> b) -> b -> a -> b
- foldLocalRegsDefd :: DefinerOfRegs LocalReg a => DynFlags -> (b -> LocalReg -> b) -> b -> a -> b
- foldLocalRegsUsed :: UserOfRegs LocalReg a => DynFlags -> (b -> LocalReg -> b) -> b -> a -> b
- type RegSet r = Set r
- type LocalRegSet = RegSet LocalReg
- type GlobalRegSet = RegSet GlobalReg
- emptyRegSet :: RegSet r
- elemRegSet :: Ord r => r -> RegSet r -> Bool
- extendRegSet :: Ord r => RegSet r -> r -> RegSet r
- deleteFromRegSet :: Ord r => RegSet r -> r -> RegSet r
- mkRegSet :: Ord r => [r] -> RegSet r
- plusRegSet :: Ord r => RegSet r -> RegSet r -> RegSet r
- minusRegSet :: Ord r => RegSet r -> RegSet r -> RegSet r
- timesRegSet :: Ord r => RegSet r -> RegSet r -> RegSet r
- sizeRegSet :: RegSet r -> Int
- nullRegSet :: RegSet r -> Bool
- regSetToList :: RegSet r -> [r]
- data Area
- module CmmMachOp
- module CmmType
Documentation
CmmLit CmmLit | |
CmmLoad !CmmExpr !CmmType | |
CmmReg !CmmReg | |
CmmMachOp MachOp [CmmExpr] | |
CmmStackSlot Area !Int | |
CmmRegOff !CmmReg Int |
Instances
Eq CmmExpr # | |
Outputable CmmExpr # | |
(Ord r, UserOfRegs r CmmReg) => UserOfRegs r CmmExpr # | |
cmmExprAlignment :: CmmExpr -> Alignment Source #
Returns an alignment in bytes of a CmmExpr when it's a statically known integer constant, otherwise returns an alignment of 1 byte. The caller is responsible for using with a sensible CmmExpr argument.
localRegType :: LocalReg -> CmmType Source #
hpAllocReg :: CmmReg Source #
class Ord r => DefinerOfRegs r a Source #
Instances
Ord r => DefinerOfRegs r r # | |
Defined in CmmExpr foldRegsDefd :: DynFlags -> (b -> r -> b) -> b -> r -> b Source # | |
DefinerOfRegs GlobalReg CmmReg # | |
DefinerOfRegs LocalReg CmmReg # | |
DefinerOfRegs r a => DefinerOfRegs r [a] # | |
Defined in CmmExpr foldRegsDefd :: DynFlags -> (b -> r -> b) -> b -> [a] -> b Source # | |
DefinerOfRegs GlobalReg (CmmNode e x) # | |
DefinerOfRegs LocalReg (CmmNode e x) # | |
class Ord r => UserOfRegs r a Source #
Instances
(Ord r, UserOfRegs r CmmReg) => UserOfRegs r CmmExpr # | |
Ord r => UserOfRegs r r # | |
Defined in CmmExpr foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> r -> b Source # | |
(Ord r, UserOfRegs r CmmReg) => UserOfRegs r ForeignTarget # | |
Defined in CmmNode foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> ForeignTarget -> b Source # | |
UserOfRegs GlobalReg CmmReg # | |
UserOfRegs LocalReg CmmReg # | |
UserOfRegs r a => UserOfRegs r [a] # | |
Defined in CmmExpr foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> [a] -> b Source # | |
UserOfRegs GlobalReg (CmmNode e x) # | |
UserOfRegs LocalReg (CmmNode e x) # | |
foldRegsDefd :: DefinerOfRegs r a => DynFlags -> (b -> r -> b) -> b -> a -> b Source #
foldRegsUsed :: UserOfRegs r a => DynFlags -> (b -> r -> b) -> b -> a -> b Source #
foldLocalRegsDefd :: DefinerOfRegs LocalReg a => DynFlags -> (b -> LocalReg -> b) -> b -> a -> b Source #
foldLocalRegsUsed :: UserOfRegs LocalReg a => DynFlags -> (b -> LocalReg -> b) -> b -> a -> b Source #
type LocalRegSet = RegSet LocalReg Source #
type GlobalRegSet = RegSet GlobalReg Source #
emptyRegSet :: RegSet r Source #
sizeRegSet :: RegSet r -> Int Source #
nullRegSet :: RegSet r -> Bool Source #
regSetToList :: RegSet r -> [r] Source #
A stack area is either the stack slot where a variable is spilled or the stack space where function arguments and results are passed.
module CmmMachOp
module CmmType