ghc-lib-parser-0.20200201: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

GHC.Cmm.Expr

Synopsis

Documentation

data CmmExpr Source #

Instances
Eq CmmExpr Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

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

(Ord r, UserOfRegs r CmmReg) => UserOfRegs r CmmExpr Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> CmmExpr -> b Source #

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.

data CmmReg Source #

Instances
Eq CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

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

Ord CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

DefinerOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

DefinerOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

UserOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

UserOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

data LocalReg Source #

Constructors

LocalReg !Unique CmmType

Parameters: 1. Identifier 2. Type

Instances
Eq LocalReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Ord LocalReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Uniquable LocalReg Source # 
Instance details

Defined in GHC.Cmm.Expr

DefinerOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

UserOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

DefinerOfRegs LocalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

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

UserOfRegs LocalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

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

data GlobalReg Source #

Instances
Eq GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Ord GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Show GlobalReg Source # 
Instance details

Defined in GHC.Cmm.Expr

DefinerOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

UserOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

DefinerOfRegs GlobalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

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

UserOfRegs GlobalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

foldRegsUsed :: DynFlags -> (b -> GlobalReg -> b) -> b -> CmmNode e x -> b Source #

data VGcPtr Source #

Constructors

VGcPtr 
VNonGcPtr 
Instances
Eq VGcPtr Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

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

Show VGcPtr Source # 
Instance details

Defined in GHC.Cmm.Expr

class Ord r => DefinerOfRegs r a Source #

Minimal complete definition

foldRegsDefd

Instances
Ord r => DefinerOfRegs r r Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: DynFlags -> (b -> r -> b) -> b -> r -> b Source #

DefinerOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

DefinerOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

DefinerOfRegs r a => DefinerOfRegs r [a] Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsDefd :: DynFlags -> (b -> r -> b) -> b -> [a] -> b Source #

DefinerOfRegs GlobalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

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

DefinerOfRegs LocalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

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

class Ord r => UserOfRegs r a Source #

Minimal complete definition

foldRegsUsed

Instances
(Ord r, UserOfRegs r CmmReg) => UserOfRegs r CmmExpr Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> CmmExpr -> b Source #

Ord r => UserOfRegs r r Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> r -> b Source #

(Ord r, UserOfRegs r CmmReg) => UserOfRegs r ForeignTarget Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> ForeignTarget -> b Source #

UserOfRegs GlobalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

UserOfRegs LocalReg CmmReg Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

UserOfRegs r a => UserOfRegs r [a] Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> [a] -> b Source #

UserOfRegs GlobalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

foldRegsUsed :: DynFlags -> (b -> GlobalReg -> b) -> b -> CmmNode e x -> b Source #

UserOfRegs LocalReg (CmmNode e x) Source # 
Instance details

Defined in GHC.Cmm.Node

Methods

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

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 RegSet r = Set r Source #

Sets of registers

elemRegSet :: Ord r => r -> RegSet r -> Bool Source #

extendRegSet :: Ord r => RegSet r -> r -> RegSet r Source #

mkRegSet :: Ord r => [r] -> RegSet r Source #

plusRegSet :: Ord r => RegSet r -> RegSet r -> RegSet r Source #

minusRegSet :: Ord r => RegSet r -> RegSet r -> RegSet r Source #

timesRegSet :: Ord r => RegSet r -> RegSet r -> RegSet r Source #

data Area 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.

Constructors

Old 
Young !BlockId 
Instances
Eq Area Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

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

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

Ord Area Source # 
Instance details

Defined in GHC.Cmm.Expr

Methods

compare :: Area -> Area -> Ordering #

(<) :: Area -> Area -> Bool #

(<=) :: Area -> Area -> Bool #

(>) :: Area -> Area -> Bool #

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

max :: Area -> Area -> Area #

min :: Area -> Area -> Area #