<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >MkZipCfgCmm</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_MkZipCfgCmm.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ghc-6.12.3: The GHC API</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >MkZipCfgCmm</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkNop" >mkNop</A > :: <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkAssign" >mkAssign</A > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkStore" >mkStore</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkCall" >mkCall</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> (<A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A >, <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A >) -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkCmmCall" >mkCmmCall</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkSafeCall" >mkSafeCall</A > :: <A HREF="MkZipCfgCmm.html#t%3AMidCallTarget" >MidCallTarget</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkUnsafeCall" >mkUnsafeCall</A > :: <A HREF="MkZipCfgCmm.html#t%3AMidCallTarget" >MidCallTarget</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkFinalCall" >mkFinalCall</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="ForeignCall.html#t%3ACCallConv" >CCallConv</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkJump" >mkJump</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkForeignJump" >mkForeignJump</A > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkJumpGC" >mkJumpGC</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkCbranch" >mkCbranch</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkSwitch" >mkSwitch</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> [<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A >] -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkReturn" >mkReturn</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkReturnSimple" >mkReturnSimple</A > :: <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkComment" >mkComment</A > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcopyInOflow" >copyInOflow</A > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcopyInSlot" >copyInSlot</A > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcopyOutOflow" >copyOutOflow</A > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="MkZipCfgCmm.html#t%3ATransfer" >Transfer</A > -> <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, [<A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A >])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcopyOutSlot" >copyOutSlot</A > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> [<A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A >] -> [<A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkEntry" >mkEntry</A > :: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkCmmIfThenElse" >mkCmmIfThenElse</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkCmmIfThen" >mkCmmIfThen</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkCmmWhileDo" >mkCmmWhileDo</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%2A%3E" >(<*>)</A > :: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcatAGraphs" >catAGraphs</A > :: [<A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l] -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkLabel" >mkLabel</A > :: <A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l => <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkBranch" >mkBranch</A > :: (<A HREF="Outputable.html#t%3AOutputable" >Outputable</A > m, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > l, <A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l) => <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AemptyAGraph" >emptyAGraph</A > :: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithFreshLabel" >withFreshLabel</A > :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> (<A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l) -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithUnique" >withUnique</A > :: (<A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l) -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AoutOfLine" >outOfLine</A > :: (<A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > m, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > l) => <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlgraphOfAGraph" >lgraphOfAGraph</A > :: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > (<A HREF="ZipCfg.html#t%3ALGraph" >LGraph</A > m l)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgraphOfAGraph" >graphOfAGraph</A > :: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > (<A HREF="ZipCfg.html#t%3AGraph" >Graph</A > m l)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlabelAGraph" >labelAGraph</A > :: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > (<A HREF="ZipCfg.html#t%3ALGraph" >LGraph</A > m l)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACmmZ" >CmmZ</A > = <A HREF="Cmm.html#t%3AGenCmm" >GenCmm</A > <A HREF="Cmm.html#t%3ACmmStatic" >CmmStatic</A > <A HREF="Cmm.html#t%3ACmmInfo" >CmmInfo</A > (<A HREF="MkZipCfgCmm.html#t%3ACmmStackInfo" >CmmStackInfo</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmGraph" >CmmGraph</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACmmTopZ" >CmmTopZ</A > = <A HREF="Cmm.html#t%3AGenCmmTop" >GenCmmTop</A > <A HREF="Cmm.html#t%3ACmmStatic" >CmmStatic</A > <A HREF="Cmm.html#t%3ACmmInfo" >CmmInfo</A > (<A HREF="MkZipCfgCmm.html#t%3ACmmStackInfo" >CmmStackInfo</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmGraph" >CmmGraph</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACmmGraph" >CmmGraph</A > = <A HREF="ZipCfg.html#t%3ALGraph" >LGraph</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACmmBlock" >CmmBlock</A > = <A HREF="ZipCfg.html#t%3ABlock" >Block</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACmmAGraph" >CmmAGraph</A > = <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACmmStackInfo" >CmmStackInfo</A > = (<A HREF="SMRep.html#t%3AByteOff" >ByteOff</A >, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="SMRep.html#t%3AByteOff" >ByteOff</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AMiddle" >Middle</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ALast" >Last</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AConvention" >Convention</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ANativeDirectCall" >NativeDirectCall</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ANativeNodeCall" >NativeNodeCall</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ANativeReturn" >NativeReturn</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASlow" >Slow</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AGC" >GC</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APrimOpCall" >PrimOpCall</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APrimOpReturn" >PrimOpReturn</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AForeign" >Foreign</A > <A HREF="MkZipCfgCmm.html#t%3AForeignConvention" >ForeignConvention</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APrivate" >Private</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AForeignConvention" >ForeignConvention</A > = <A HREF="#v%3AForeignConvention" >ForeignConvention</A > <A HREF="ForeignCall.html#t%3ACCallConv" >CCallConv</A > [<A HREF="Cmm.html#t%3AForeignHint" >ForeignHint</A >] [<A HREF="Cmm.html#t%3AForeignHint" >ForeignHint</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AMidCallTarget" >MidCallTarget</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AForeignTarget" >ForeignTarget</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > <A HREF="MkZipCfgCmm.html#t%3AForeignConvention" >ForeignConvention</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APrimTarget" >PrimTarget</A > <A HREF="Cmm.html#t%3ACallishMachOp" >CallishMachOp</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATransfer" >Transfer</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ACall" >Call</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AJump" >Jump</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ARet" >Ret</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AstackStubExpr" >stackStubExpr</A > :: <A HREF="CmmExpr.html#t%3AWidth" >Width</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApprAGraph" >pprAGraph</A > :: (<A HREF="Outputable.html#t%3AOutputable" >Outputable</A > m, <A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > l) => <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkNop" ><A NAME="v%3AmkNop" ></A ></A ><B >mkNop</B > :: <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkAssign" ><A NAME="v%3AmkAssign" ></A ></A ><B >mkAssign</B > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkStore" ><A NAME="v%3AmkStore" ></A ></A ><B >mkStore</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkCall" ><A NAME="v%3AmkCall" ></A ></A ><B >mkCall</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> (<A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A >, <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A >) -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkCmmCall" ><A NAME="v%3AmkCmmCall" ></A ></A ><B >mkCmmCall</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkSafeCall" ><A NAME="v%3AmkSafeCall" ></A ></A ><B >mkSafeCall</B > :: <A HREF="MkZipCfgCmm.html#t%3AMidCallTarget" >MidCallTarget</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkUnsafeCall" ><A NAME="v%3AmkUnsafeCall" ></A ></A ><B >mkUnsafeCall</B > :: <A HREF="MkZipCfgCmm.html#t%3AMidCallTarget" >MidCallTarget</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkFinalCall" ><A NAME="v%3AmkFinalCall" ></A ></A ><B >mkFinalCall</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="ForeignCall.html#t%3ACCallConv" >CCallConv</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkJump" ><A NAME="v%3AmkJump" ></A ></A ><B >mkJump</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkForeignJump" ><A NAME="v%3AmkForeignJump" ></A ></A ><B >mkForeignJump</B > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkJumpGC" ><A NAME="v%3AmkJumpGC" ></A ></A ><B >mkJumpGC</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkCbranch" ><A NAME="v%3AmkCbranch" ></A ></A ><B >mkCbranch</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkSwitch" ><A NAME="v%3AmkSwitch" ></A ></A ><B >mkSwitch</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> [<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A >] -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkReturn" ><A NAME="v%3AmkReturn" ></A ></A ><B >mkReturn</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkReturnSimple" ><A NAME="v%3AmkReturnSimple" ></A ></A ><B >mkReturnSimple</B > :: <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkComment" ><A NAME="v%3AmkComment" ></A ></A ><B >mkComment</B > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:copyInOflow" ><A NAME="v%3AcopyInOflow" ></A ></A ><B >copyInOflow</B > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:copyInSlot" ><A NAME="v%3AcopyInSlot" ></A ></A ><B >copyInSlot</B > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:copyOutOflow" ><A NAME="v%3AcopyOutOflow" ></A ></A ><B >copyOutOflow</B > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="MkZipCfgCmm.html#t%3ATransfer" >Transfer</A > -> <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > -> <A HREF="ZipCfgCmmRep.html#t%3AUpdFrameOffset" >UpdFrameOffset</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, [<A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A >])</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:copyOutSlot" ><A NAME="v%3AcopyOutSlot" ></A ></A ><B >copyOutSlot</B > :: <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> [<A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A >] -> [<A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkEntry" ><A NAME="v%3AmkEntry" ></A ></A ><B >mkEntry</B > :: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A > -> <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkCmmIfThenElse" ><A NAME="v%3AmkCmmIfThenElse" ></A ></A ><B >mkCmmIfThenElse</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkCmmIfThen" ><A NAME="v%3AmkCmmIfThen" ></A ></A ><B >mkCmmIfThen</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkCmmWhileDo" ><A NAME="v%3AmkCmmWhileDo" ></A ></A ><B >mkCmmWhileDo</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A > -> <A HREF="MkZipCfgCmm.html#t%3ACmmAGraph" >CmmAGraph</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:<*>" ><A NAME="v%3A%3C%2A%3E" ></A ></A ><B >(<*>)</B > :: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:catAGraphs" ><A NAME="v%3AcatAGraphs" ></A ></A ><B >catAGraphs</B > :: [<A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l] -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkLabel" ><A NAME="v%3AmkLabel" ></A ></A ><B >mkLabel</B > :: <A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l => <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkBranch" ><A NAME="v%3AmkBranch" ></A ></A ><B >mkBranch</B > :: (<A HREF="Outputable.html#t%3AOutputable" >Outputable</A > m, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > l, <A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l) => <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptyAGraph" ><A NAME="v%3AemptyAGraph" ></A ></A ><B >emptyAGraph</B > :: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="doc" >A graph is built up by splicing together graphs each containing a single node (where a label is considered a first node. The empty graph is a left and right unit for splicing. All of the AGraph constructors (even complex ones like <TT ><A HREF="MkZipCfg.html#v%3AmkIfThenElse" >mkIfThenElse</A ></TT >, as well as the splicing operation <A HREF="*" >*</A >, are constant-time operations. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withFreshLabel" ><A NAME="v%3AwithFreshLabel" ></A ></A ><B >withFreshLabel</B > :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> (<A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l) -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="doc" >This function provides access to fresh labels without requiring clients to be programmed monadically. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:withUnique" ><A NAME="v%3AwithUnique" ></A ></A ><B >withUnique</B > :: (<A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l) -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:outOfLine" ><A NAME="v%3AoutOfLine" ></A ></A ><B >outOfLine</B > :: (<A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > m, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > l) => <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ></TR ><TR ><TD CLASS="doc" ><P >The argument is an AGraph that has an empty entry sequence and no exit sequence. The result is a new AGraph that has an empty entry sequence connected to an empty exit sequence, with the original graph sitting to the side out-of-line. </P ><P >Example: mkMiddle (x = 3) <A HREF="*> outOfLine (mkLabel L <*" >*> outOfLine (mkLabel L <*</A > ...stuff...) <A HREF="*" >*</A > mkMiddle (y = x) Control will flow directly from x=3 to y=x; the block starting with L is <A HREF="on the side.html" >on the side</A >. </P ><P >N.B. algebraically forall g g' : g <A HREF="*> outOfLine g' == outOfLine g' <*" >*> outOfLine g' == outOfLine g' <*</A > g </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lgraphOfAGraph" ><A NAME="v%3AlgraphOfAGraph" ></A ></A ><B >lgraphOfAGraph</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > (<A HREF="ZipCfg.html#t%3ALGraph" >LGraph</A > m l)</TD ><TD CLASS="rdoc" >allocate a fresh label for the entry point </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:graphOfAGraph" ><A NAME="v%3AgraphOfAGraph" ></A ></A ><B >graphOfAGraph</B > :: <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > (<A HREF="ZipCfg.html#t%3AGraph" >Graph</A > m l)</TD ></TR ><TR ><TD CLASS="doc" >Converting an abstract graph to a concrete form is expensive: the cost is linear in the number of nodes in the answer, plus N log N in the number of basic blocks. The conversion is also monadic because it may require the allocation of fresh, unique labels. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:labelAGraph" ><A NAME="v%3AlabelAGraph" ></A ></A ><B >labelAGraph</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > (<A HREF="ZipCfg.html#t%3ALGraph" >LGraph</A > m l)</TD ><TD CLASS="rdoc" >use the given BlockId as the label of the entry point </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:CmmZ" ><A NAME="t%3ACmmZ" ></A ></A ><B >CmmZ</B > = <A HREF="Cmm.html#t%3AGenCmm" >GenCmm</A > <A HREF="Cmm.html#t%3ACmmStatic" >CmmStatic</A > <A HREF="Cmm.html#t%3ACmmInfo" >CmmInfo</A > (<A HREF="MkZipCfgCmm.html#t%3ACmmStackInfo" >CmmStackInfo</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmGraph" >CmmGraph</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:CmmTopZ" ><A NAME="t%3ACmmTopZ" ></A ></A ><B >CmmTopZ</B > = <A HREF="Cmm.html#t%3AGenCmmTop" >GenCmmTop</A > <A HREF="Cmm.html#t%3ACmmStatic" >CmmStatic</A > <A HREF="Cmm.html#t%3ACmmInfo" >CmmInfo</A > (<A HREF="MkZipCfgCmm.html#t%3ACmmStackInfo" >CmmStackInfo</A >, <A HREF="MkZipCfgCmm.html#t%3ACmmGraph" >CmmGraph</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:CmmGraph" ><A NAME="t%3ACmmGraph" ></A ></A ><B >CmmGraph</B > = <A HREF="ZipCfg.html#t%3ALGraph" >LGraph</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:CmmBlock" ><A NAME="t%3ACmmBlock" ></A ></A ><B >CmmBlock</B > = <A HREF="ZipCfg.html#t%3ABlock" >Block</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:CmmAGraph" ><A NAME="t%3ACmmAGraph" ></A ></A ><B >CmmAGraph</B > = <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:CmmStackInfo" ><A NAME="t%3ACmmStackInfo" ></A ></A ><B >CmmStackInfo</B > = (<A HREF="SMRep.html#t%3AByteOff" >ByteOff</A >, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="SMRep.html#t%3AByteOff" >ByteOff</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Middle" ><A NAME="t%3AMiddle" ></A ></A ><B >Middle</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Middle')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Middle" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfSlots" >DefinerOfSlots</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfSlots" >UserOfSlots</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="ZipDataflow.html#t%3ADebugNodes" >DebugNodes</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Last" ><A NAME="t%3ALast" ></A ></A ><B >Last</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Last')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Last" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfSlots" >DefinerOfSlots</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfSlots" >UserOfSlots</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="ZipCfg.html#t%3AHavingSuccessors" >HavingSuccessors</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="ZipDataflow.html#t%3ADebugNodes" >DebugNodes</A > <A HREF="MkZipCfgCmm.html#t%3AMiddle" >Middle</A > <A HREF="MkZipCfgCmm.html#t%3ALast" >Last</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Convention" ><A NAME="t%3AConvention" ></A ></A ><B >Convention</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:NativeDirectCall" ><A NAME="v%3ANativeDirectCall" ></A ></A ><B >NativeDirectCall</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:NativeNodeCall" ><A NAME="v%3ANativeNodeCall" ></A ></A ><B >NativeNodeCall</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:NativeReturn" ><A NAME="v%3ANativeReturn" ></A ></A ><B >NativeReturn</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Slow" ><A NAME="v%3ASlow" ></A ></A ><B >Slow</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:GC" ><A NAME="v%3AGC" ></A ></A ><B >GC</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PrimOpCall" ><A NAME="v%3APrimOpCall" ></A ></A ><B >PrimOpCall</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PrimOpReturn" ><A NAME="v%3APrimOpReturn" ></A ></A ><B >PrimOpReturn</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Foreign" ><A NAME="v%3AForeign" ></A ></A ><B >Foreign</B > <A HREF="MkZipCfgCmm.html#t%3AForeignConvention" >ForeignConvention</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Private" ><A NAME="v%3APrivate" ></A ></A ><B >Private</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Convention')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Convention" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="MkZipCfgCmm.html#t%3AConvention" >Convention</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:ForeignConvention" ><A NAME="t%3AForeignConvention" ></A ></A ><B >ForeignConvention</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:ForeignConvention" ><A NAME="v%3AForeignConvention" ></A ></A ><B >ForeignConvention</B > <A HREF="ForeignCall.html#t%3ACCallConv" >CCallConv</A > [<A HREF="Cmm.html#t%3AForeignHint" >ForeignHint</A >] [<A HREF="Cmm.html#t%3AForeignHint" >ForeignHint</A >]</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ForeignConvention')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:ForeignConvention" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="MkZipCfgCmm.html#t%3AForeignConvention" >ForeignConvention</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="MkZipCfgCmm.html#t%3AForeignConvention" >ForeignConvention</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:MidCallTarget" ><A NAME="t%3AMidCallTarget" ></A ></A ><B >MidCallTarget</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:ForeignTarget" ><A NAME="v%3AForeignTarget" ></A ></A ><B >ForeignTarget</B > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > <A HREF="MkZipCfgCmm.html#t%3AForeignConvention" >ForeignConvention</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PrimTarget" ><A NAME="v%3APrimTarget" ></A ></A ><B >PrimTarget</B > <A HREF="Cmm.html#t%3ACallishMachOp" >CallishMachOp</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MidCallTarget')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:MidCallTarget" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="MkZipCfgCmm.html#t%3AMidCallTarget" >MidCallTarget</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfSlots" >UserOfSlots</A > <A HREF="MkZipCfgCmm.html#t%3AMidCallTarget" >MidCallTarget</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="MkZipCfgCmm.html#t%3AMidCallTarget" >MidCallTarget</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Transfer" ><A NAME="t%3ATransfer" ></A ></A ><B >Transfer</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Call" ><A NAME="v%3ACall" ></A ></A ><B >Call</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Jump" ><A NAME="v%3AJump" ></A ></A ><B >Jump</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Ret" ><A NAME="v%3ARet" ></A ></A ><B >Ret</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Transfer')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Transfer" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="MkZipCfgCmm.html#t%3ATransfer" >Transfer</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:stackStubExpr" ><A NAME="v%3AstackStubExpr" ></A ></A ><B >stackStubExpr</B > :: <A HREF="CmmExpr.html#t%3AWidth" >Width</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:pprAGraph" ><A NAME="v%3ApprAGraph" ></A ></A ><B >pprAGraph</B > :: (<A HREF="Outputable.html#t%3AOutputable" >Outputable</A > m, <A HREF="ZipCfg.html#t%3ALastNode" >LastNode</A > l, <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > l) => <A HREF="MkZipCfg.html#t%3AAGraph" >AGraph</A > m l -> <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A > <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >