ghc-9.10.0.20240426: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Cmm.Reg

Synopsis

Cmm Registers

data CmmReg Source #

Instances

Instances details
Outputable CmmReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Methods

ppr :: CmmReg -> SDoc Source #

Show CmmReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Eq CmmReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Methods

(==) :: CmmReg -> CmmReg -> Bool #

(/=) :: CmmReg -> CmmReg -> Bool #

Ord CmmReg Source # 
Instance details

Defined in GHC.Cmm.Reg

DefinerOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: Platform -> (b -> GlobalReg -> b) -> b -> CmmReg -> b Source #

DefinerOfRegs GlobalRegUse CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: Platform -> (b -> GlobalRegUse -> b) -> b -> CmmReg -> b Source #

DefinerOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: Platform -> (b -> LocalReg -> b) -> b -> CmmReg -> b Source #

UserOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: Platform -> (b -> GlobalReg -> b) -> b -> CmmReg -> b Source #

UserOfRegs GlobalRegUse CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: Platform -> (b -> GlobalRegUse -> b) -> b -> CmmReg -> b Source #

UserOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: Platform -> (b -> LocalReg -> b) -> b -> CmmReg -> b Source #

Local registers

data LocalReg Source #

Constructors

LocalReg !Unique !CmmType

Parameters: 1. Identifier 2. Type

Instances

Instances details
Uniquable LocalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Outputable LocalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Methods

ppr :: LocalReg -> SDoc Source #

Show LocalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Eq LocalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Ord LocalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

DefinerOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: Platform -> (b -> LocalReg -> b) -> b -> CmmReg -> b Source #

UserOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: Platform -> (b -> LocalReg -> b) -> b -> CmmReg -> b Source #

DefinerOfRegs LocalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

foldRegsDefd :: Platform -> (b -> LocalReg -> b) -> b -> CmmNode e x -> b Source #

UserOfRegs LocalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

foldRegsUsed :: Platform -> (b -> LocalReg -> b) -> b -> CmmNode e x -> b Source #

Global registers

data GlobalReg Source #

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

Instances details
Outputable GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Methods

ppr :: GlobalReg -> SDoc Source #

Show GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Eq GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Ord GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

DefinerOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: Platform -> (b -> GlobalReg -> b) -> b -> CmmReg -> b Source #

UserOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: Platform -> (b -> GlobalReg -> b) -> b -> CmmReg -> b Source #

OutputableP env GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Methods

pdoc :: env -> GlobalReg -> SDoc Source #

DefinerOfRegs GlobalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

foldRegsDefd :: Platform -> (b -> GlobalReg -> b) -> b -> CmmNode e x -> b Source #

UserOfRegs GlobalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

foldRegsUsed :: Platform -> (b -> GlobalReg -> b) -> b -> CmmNode e x -> b 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.

Constructors

GlobalRegUse 

Fields

Instances

Instances details
Outputable GlobalRegUse Source # 
Instance details

Defined in GHC.Cmm.Reg

Show GlobalRegUse Source # 
Instance details

Defined in GHC.Cmm.Reg

Eq GlobalRegUse Source # 
Instance details

Defined in GHC.Cmm.Reg

Ord GlobalRegUse Source # 
Instance details

Defined in GHC.Cmm.Reg

DefinerOfRegs GlobalRegUse CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: Platform -> (b -> GlobalRegUse -> b) -> b -> CmmReg -> b Source #

UserOfRegs GlobalRegUse CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: Platform -> (b -> GlobalRegUse -> b) -> b -> CmmReg -> b Source #