ghc-7.0.3: The GHC API

ZipCfgCmmRep

# Documentation

type CmmZ = GenCmm CmmStatic CmmInfo (CmmStackInfo, CmmGraph)Source

type CmmTopZ = GenCmmTop CmmStatic CmmInfo (CmmStackInfo, CmmGraph)Source

type CmmGraph = LGraph Middle Last Source

type CmmBlock = Block Middle Last Source

type CmmAGraph = AGraph Middle Last Source

data Middle Source

Constructors

MidComment FastString |
MidAssign CmmReg CmmExpr |
MidStore CmmExpr CmmExpr |
MidForeignCall ForeignSafety MidCallTarget CmmFormals CmmActuals |

Instances

Eq Middle |
Outputable Middle |
DefinerOfSlots Middle |
UserOfSlots Middle |
DefinerOfLocalRegs Middle |
UserOfLocalRegs Middle |
DebugNodes Middle Last |

data Last Source

Constructors

LastBranch BlockId |
LastCondBranch |

Fields

cml_pred :: CmmExpr
cml_true :: BlockId
cml_false :: BlockId

LastSwitch CmmExpr [Maybe BlockId] |
LastCall |

Fields

cml_target :: CmmExpr
cml_cont :: Maybe BlockId
cml_args :: ByteOff
cml_ret_args :: ByteOff
cml_ret_off :: Maybe ByteOff

Instances

Outputable Last |
DefinerOfSlots Last |
UserOfSlots Last |
DefinerOfLocalRegs Last |
UserOfLocalRegs Last |
LastNode Last |
HavingSuccessors Last |
DebugNodes Middle Last |

data MidCallTarget Source

Constructors

ForeignTarget CmmExpr ForeignConvention |
PrimTarget CallishMachOp |

Instances

Eq MidCallTarget |
UserOfSlots MidCallTarget |
UserOfLocalRegs MidCallTarget |

type UpdFrameOffset = ByteOff Source

data Convention Source

Constructors

NativeDirectCall |
NativeNodeCall |
NativeReturn |
Slow |
GC |
PrimOpCall |
PrimOpReturn |
Foreign ForeignConvention |
Private |

Instances

Eq Convention |
Outputable Convention |

data ForeignConvention Source

Constructors

ForeignConvention CCallConv [ForeignHint] [ForeignHint] |

Instances

Eq ForeignConvention |
Outputable ForeignConvention |

data ForeignSafety Source

Constructors

Unsafe |
Safe BlockId UpdFrameOffset |

Instances

Eq ForeignSafety |

data ValueDirection Source

Constructors

Arguments |
Results |

Instances

Eq ValueDirection |
Outputable ValueDirection |

data ForeignHint Source

Constructors

NoHint |
AddrHint |
SignedHint |

Instances

Eq ForeignHint |
Outputable ForeignHint |

type CmmBackwardFixedPoint a = BackwardFixedPoint Middle Last a ()Source

type CmmForwardFixedPoint a = ForwardFixedPoint Middle Last a ()Source

pprHinted :: Outputable a => CmmHinted a -> SDoc Source

insertBetween :: MonadUnique m => CmmBlock -> [Middle] -> BlockId -> m (CmmBlock, [CmmBlock])Source

mapExpMiddle :: (CmmExpr -> CmmExpr) -> Middle -> Middle Source

mapExpLast :: (CmmExpr -> CmmExpr) -> Last -> Last Source

mapExpDeepMiddle :: (CmmExpr -> CmmExpr) -> Middle -> Middle Source

mapExpDeepLast :: (CmmExpr -> CmmExpr) -> Last -> Last Source

foldExpMiddle :: (CmmExpr -> z -> z) -> Middle -> z -> zSource

foldExpLast :: (CmmExpr -> z -> z) -> Last -> z -> zSource

foldExpDeepMiddle :: (CmmExpr -> z -> z) -> Middle -> z -> zSource

foldExpDeepLast :: (CmmExpr -> z -> z) -> Last -> z -> zSource

joinOuts :: DataflowLattice a -> (BlockId -> a) -> Last -> aSource