ghc-8.0.0.20160204: The GHC API

Safe HaskellNone
LanguageHaskell2010

CmmExpr

Synopsis

Documentation

data CmmReg

Instances

Eq CmmReg 

Methods

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

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

Ord CmmReg 
DefinerOfRegs GlobalReg CmmReg 

Methods

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

DefinerOfRegs LocalReg CmmReg 

Methods

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

UserOfRegs GlobalReg CmmReg 

Methods

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

UserOfRegs LocalReg CmmReg 

Methods

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

data LocalReg

Constructors

LocalReg !Unique CmmType

Parameters: 1. Identifier 2. Type

Instances

data VGcPtr

Constructors

VGcPtr 
VNonGcPtr 

class Ord r => DefinerOfRegs r a where

Minimal complete definition

foldRegsDefd

Methods

foldRegsDefd :: DynFlags -> (b -> r -> b) -> b -> a -> b

Instances

Ord r => DefinerOfRegs r r 

Methods

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

DefinerOfRegs GlobalReg CmmReg 

Methods

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

DefinerOfRegs LocalReg CmmReg 

Methods

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

DefinerOfRegs r a => DefinerOfRegs r (Maybe a) 

Methods

foldRegsDefd :: DynFlags -> (b -> r -> b) -> b -> Maybe a -> b

DefinerOfRegs r a => DefinerOfRegs r [a] 

Methods

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

DefinerOfRegs GlobalReg (CmmNode e x) 

Methods

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

DefinerOfRegs LocalReg (CmmNode e x) 

Methods

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

class Ord r => UserOfRegs r a where

Minimal complete definition

foldRegsUsed

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> a -> b

Instances

(Ord r, UserOfRegs r CmmReg) => UserOfRegs r CmmExpr 

Methods

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

Ord r => UserOfRegs r r 

Methods

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

(Ord r, UserOfRegs r CmmExpr) => UserOfRegs r ForeignTarget 

Methods

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

UserOfRegs GlobalReg CmmReg 

Methods

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

UserOfRegs LocalReg CmmReg 

Methods

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

UserOfRegs r a => UserOfRegs r [a] 

Methods

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

UserOfRegs r a => UserOfRegs r (Maybe a) 

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> Maybe a -> b

Ord r => UserOfRegs r (RegSet r) 

Methods

foldRegsUsed :: DynFlags -> (b -> r -> b) -> b -> RegSet r -> b

UserOfRegs GlobalReg (CmmNode e x) 

Methods

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

UserOfRegs LocalReg (CmmNode e x) 

Methods

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

foldRegsDefd :: DefinerOfRegs r a => DynFlags -> (b -> r -> b) -> b -> a -> b

foldRegsUsed :: UserOfRegs r a => DynFlags -> (b -> r -> b) -> b -> a -> b

filterRegsUsed :: UserOfRegs r e => DynFlags -> (r -> Bool) -> e -> RegSet r

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

Sets of registers

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

regSetToList :: RegSet r -> [r]

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

Old 
Young !BlockId 

Instances

Eq Area 

Methods

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

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

Ord Area 

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

module CmmMachOp

module CmmType