Safe Haskell | Ignore |
---|---|
Language | GHC2021 |
Synopsis
- data CmmReg
- cmmRegType :: CmmReg -> CmmType
- cmmRegWidth :: CmmReg -> Width
- data LocalReg = LocalReg !Unique !CmmType
- localRegType :: LocalReg -> CmmType
- data GlobalReg
- = VanillaReg !Int
- | 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
- globalRegSpillType :: Platform -> GlobalReg -> CmmType
- pprGlobalReg :: IsLine doc => GlobalReg -> doc
- spReg :: Platform -> CmmReg
- hpReg :: Platform -> CmmReg
- spLimReg :: Platform -> CmmReg
- hpLimReg :: Platform -> CmmReg
- nodeReg :: Platform -> CmmReg
- currentTSOReg :: Platform -> CmmReg
- currentNurseryReg :: Platform -> CmmReg
- hpAllocReg :: Platform -> CmmReg
- cccsReg :: Platform -> CmmReg
- node :: GlobalReg
- baseReg :: Platform -> CmmReg
- data GlobalRegUse = GlobalRegUse {}
- pprGlobalRegUse :: IsLine doc => GlobalRegUse -> doc
Cmm Registers
Instances
Show CmmReg Source # | |
Outputable CmmReg Source # | |
Eq CmmReg Source # | |
Ord CmmReg Source # | |
DefinerOfRegs GlobalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr | |
DefinerOfRegs GlobalRegUse CmmReg Source # | |
Defined in GHC.Cmm.Expr foldRegsDefd :: Platform -> (b -> GlobalRegUse -> b) -> b -> CmmReg -> b Source # | |
DefinerOfRegs LocalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr | |
UserOfRegs GlobalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr | |
UserOfRegs GlobalRegUse CmmReg Source # | |
Defined in GHC.Cmm.Expr foldRegsUsed :: Platform -> (b -> GlobalRegUse -> b) -> b -> CmmReg -> b Source # | |
UserOfRegs LocalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr |
cmmRegType :: CmmReg -> CmmType Source #
cmmRegWidth :: CmmReg -> Width Source #
Local registers
Instances
Show LocalReg Source # | |
Uniquable LocalReg Source # | |
Outputable LocalReg Source # | |
Eq LocalReg Source # | |
Ord LocalReg Source # | |
Defined in GHC.Cmm.Reg | |
DefinerOfRegs LocalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr | |
UserOfRegs LocalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr | |
DefinerOfRegs LocalReg (CmmNode e x) Source # | |
Defined in GHC.Cmm.Node | |
UserOfRegs LocalReg (CmmNode e x) Source # | |
Defined in GHC.Cmm.Node |
localRegType :: LocalReg -> CmmType Source #
Global registers
An abstract global register for the STG machine.
See also GlobalRegUse
, which denotes a usage of a register at a particular
type (e.g. using a 32-bit wide register to store an 8-bit wide value), as per
Note [GlobalReg vs GlobalRegUse].
Instances
Show GlobalReg Source # | |
Outputable GlobalReg Source # | |
Eq GlobalReg Source # | |
Ord GlobalReg Source # | |
Defined in GHC.Cmm.Reg | |
DefinerOfRegs GlobalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr | |
UserOfRegs GlobalReg CmmReg Source # | |
Defined in GHC.Cmm.Expr | |
OutputableP env GlobalReg Source # | |
DefinerOfRegs GlobalReg (CmmNode e x) Source # | |
Defined in GHC.Cmm.Node | |
UserOfRegs GlobalReg (CmmNode e x) Source # | |
Defined in GHC.Cmm.Node |
pprGlobalReg :: IsLine doc => GlobalReg -> doc Source #
currentTSOReg :: Platform -> CmmReg Source #
currentNurseryReg :: Platform -> CmmReg Source #
hpAllocReg :: Platform -> CmmReg Source #
data GlobalRegUse Source #
A use of a global register at a particular type.
While a GlobalReg
identifies a global register in the STG machine,
a GlobalRegUse
also contains information about the type we are storing
in the register.
See Note [GlobalReg vs GlobalRegUse] for more information.
GlobalRegUse | |
|
Instances
pprGlobalRegUse :: IsLine doc => GlobalRegUse -> doc Source #