ghc-7.0.3: The GHC API

ZipCfgCmmRep

# Documentation

type CmmZ = GenCmm CmmStatic CmmInfo (CmmStackInfo, CmmGraph)

type CmmTopZ = GenCmmTop CmmStatic CmmInfo (CmmStackInfo, CmmGraph)

type CmmGraph = LGraph Middle Last

type CmmBlock = Block Middle Last

type CmmAGraph = AGraph Middle Last

data Middle

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

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

Constructors

ForeignTarget CmmExpr ForeignConvention |
PrimTarget CallishMachOp |

Instances

Eq MidCallTarget |
UserOfSlots MidCallTarget |
UserOfLocalRegs MidCallTarget |

type UpdFrameOffset = ByteOff

data Convention

Constructors

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

Instances

Eq Convention |
Outputable Convention |

data ForeignConvention

Constructors

ForeignConvention CCallConv [ForeignHint] [ForeignHint] |

Instances

Eq ForeignConvention |
Outputable ForeignConvention |

data ForeignSafety

Constructors

Unsafe |
Safe BlockId UpdFrameOffset |

Instances

Eq ForeignSafety |

data ValueDirection

Constructors

Arguments |
Results |

Instances

Eq ValueDirection |
Outputable ValueDirection |

data ForeignHint

Constructors

NoHint |
AddrHint |
SignedHint |

Instances

Eq ForeignHint |
Outputable ForeignHint |

type CmmBackwardFixedPoint a = BackwardFixedPoint Middle Last a ()

type CmmForwardFixedPoint a = ForwardFixedPoint Middle Last a ()

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

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

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

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

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

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

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

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

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

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

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