Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 70ec89744a04da80369b4702b2c37256 > files > 680

ghc-doc-6.10.4-1mdv2010.0.i586.rpm

<!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
>CmmBrokenBlock</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_CmmBrokenBlock.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.10.4: 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"
>CmmBrokenBlock</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"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABrokenBlock"
>BrokenBlock</A
>  = <A HREF="#v%3ABrokenBlock"
>BrokenBlock</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbrokenBlockId"
>brokenBlockId</A
> :: <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbrokenBlockEntry"
>brokenBlockEntry</A
> :: <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo"
>BlockEntryInfo</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbrokenBlockStmts"
>brokenBlockStmts</A
> :: [<A HREF="Cmm.html#t%3ACmmStmt"
>CmmStmt</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbrokenBlockTargets"
>brokenBlockTargets</A
> :: [<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AbrokenBlockExit"
>brokenBlockExit</A
> :: <A HREF="CmmBrokenBlock.html#t%3AFinalStmt"
>FinalStmt</A
></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%3ABlockEntryInfo"
>BlockEntryInfo</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AFunctionEntry"
>FunctionEntry</A
> <A HREF="Cmm.html#t%3ACmmInfo"
>CmmInfo</A
> <A HREF="CLabel.html#t%3ACLabel"
>CLabel</A
> <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds"
>CmmFormalsWithoutKinds</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AContinuationEntry"
>ContinuationEntry</A
> <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds"
>CmmFormalsWithoutKinds</A
> <A HREF="ClosureInfo.html#t%3AC_SRT"
>C_SRT</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AControlEntry"
>ControlEntry</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%3AFinalStmt"
>FinalStmt</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AFinalBranch"
>FinalBranch</A
> <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFinalReturn"
>FinalReturn</A
> <A HREF="Cmm.html#t%3ACmmActuals"
>CmmActuals</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFinalJump"
>FinalJump</A
> <A HREF="CmmExpr.html#t%3ACmmExpr"
>CmmExpr</A
> <A HREF="Cmm.html#t%3ACmmActuals"
>CmmActuals</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFinalCall"
>FinalCall</A
> <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> <A HREF="Cmm.html#t%3ACmmCallTarget"
>CmmCallTarget</A
> <A HREF="Cmm.html#t%3ACmmFormals"
>CmmFormals</A
> <A HREF="Cmm.html#t%3ACmmActuals"
>CmmActuals</A
> <A HREF="ClosureInfo.html#t%3AC_SRT"
>C_SRT</A
> <A HREF="Cmm.html#t%3ACmmReturnInfo"
>CmmReturnInfo</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFinalSwitch"
>FinalSwitch</A
> <A HREF="CmmExpr.html#t%3ACmmExpr"
>CmmExpr</A
> [<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbreakBlock"
>breakBlock</A
> :: [<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>] -&gt; [<A HREF="Unique.html#t%3AUnique"
>Unique</A
>] -&gt; <A HREF="Cmm.html#t%3ACmmBasicBlock"
>CmmBasicBlock</A
> -&gt; <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo"
>BlockEntryInfo</A
> -&gt; ([(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)], [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
>])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcmmBlockFromBrokenBlock"
>cmmBlockFromBrokenBlock</A
> :: <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
> -&gt; <A HREF="Cmm.html#t%3ACmmBasicBlock"
>CmmBasicBlock</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AblocksToBlockEnv"
>blocksToBlockEnv</A
> :: [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
>] -&gt; <A HREF="BlockId.html#t%3ABlockEnv"
>BlockEnv</A
> <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AadaptBlockToFormat"
>adaptBlockToFormat</A
> :: [(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)] -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
> -&gt; [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AselectContinuations"
>selectContinuations</A
> :: [(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)] -&gt; [(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AContFormat"
>ContFormat</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
>makeContinuationEntries</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"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BrokenBlock"
><A NAME="t%3ABrokenBlock"
></A
></A
><B
>BrokenBlock</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Similar to a CmmBlock with a little extra information
 to help the CPS analysis.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:BrokenBlock"
><A NAME="v%3ABrokenBlock"
></A
></A
><B
>BrokenBlock</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:brokenBlockId"
><A NAME="v%3AbrokenBlockId"
></A
></A
><B
>brokenBlockId</B
> :: <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TD
><TD CLASS="rdoc"
>The block's label like a <TT
><A HREF="Cmm.html#t%3ACmmBasicBlock"
>CmmBasicBlock</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:brokenBlockEntry"
><A NAME="v%3AbrokenBlockEntry"
></A
></A
><B
>brokenBlockEntry</B
> :: <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo"
>BlockEntryInfo</A
></TD
><TD CLASS="rdoc"
>Ways this block can be entered
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:brokenBlockStmts"
><A NAME="v%3AbrokenBlockStmts"
></A
></A
><B
>brokenBlockStmts</B
> :: [<A HREF="Cmm.html#t%3ACmmStmt"
>CmmStmt</A
>]</TD
><TD CLASS="rdoc"
>Body like a CmmBasicBlock
 (but without the last statement)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:brokenBlockTargets"
><A NAME="v%3AbrokenBlockTargets"
></A
></A
><B
>brokenBlockTargets</B
> :: [<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>]</TD
><TD CLASS="rdoc"
>Blocks that this block could
 branch to either by conditional
 branches or via the last statement
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:brokenBlockExit"
><A NAME="v%3AbrokenBlockExit"
></A
></A
><B
>brokenBlockExit</B
> :: <A HREF="CmmBrokenBlock.html#t%3AFinalStmt"
>FinalStmt</A
></TD
><TD CLASS="rdoc"
>The final statement of the block
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BlockEntryInfo"
><A NAME="t%3ABlockEntryInfo"
></A
></A
><B
>BlockEntryInfo</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>How a block could be entered
 See Note [An example of CPS conversion]
</TD
></TR
><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:FunctionEntry"
><A NAME="v%3AFunctionEntry"
></A
></A
><B
>FunctionEntry</B
> <A HREF="Cmm.html#t%3ACmmInfo"
>CmmInfo</A
> <A HREF="CLabel.html#t%3ACLabel"
>CLabel</A
> <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds"
>CmmFormalsWithoutKinds</A
></TD
><TD CLASS="rdoc"
>Block is the beginning of a function, parameters are:
   1. Function header info
   2. The function name
   3. Aguments to function
 Only the formal parameters are live
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ContinuationEntry"
><A NAME="v%3AContinuationEntry"
></A
></A
><B
>ContinuationEntry</B
> <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds"
>CmmFormalsWithoutKinds</A
> <A HREF="ClosureInfo.html#t%3AC_SRT"
>C_SRT</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>Return point of a function call, parameters are:
   1. return values (argument to continuation)
   2. SRT for the continuation's info table
   3. True <A HREF="="
>=</A
> GC block so ignore stack size
 Live variables, other than
 the return values, are on the stack
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ControlEntry"
><A NAME="v%3AControlEntry"
></A
></A
><B
>ControlEntry</B
></TD
><TD CLASS="rdoc"
>Any other kind of block.  Only entered due to control flow.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:FinalStmt"
><A NAME="t%3AFinalStmt"
></A
></A
><B
>FinalStmt</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Final statement in a BlokenBlock.
 Constructors and arguments match those in <TT
><A HREF="Cmm.html#t%3ACmm"
>Cmm</A
></TT
>,
 but are restricted to branches, returns, jumps, calls and switches
</TD
></TR
><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:FinalBranch"
><A NAME="v%3AFinalBranch"
></A
></A
><B
>FinalBranch</B
> <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TD
><TD CLASS="rdoc"
>Same as <TT
><A HREF="Cmm.html#v%3ACmmBranch"
>CmmBranch</A
></TT
>.  Target must be a ControlEntry
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FinalReturn"
><A NAME="v%3AFinalReturn"
></A
></A
><B
>FinalReturn</B
> <A HREF="Cmm.html#t%3ACmmActuals"
>CmmActuals</A
></TD
><TD CLASS="rdoc"
>Same as <TT
><A HREF="Cmm.html#v%3ACmmReturn"
>CmmReturn</A
></TT
>. Parameter is the return values.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FinalJump"
><A NAME="v%3AFinalJump"
></A
></A
><B
>FinalJump</B
> <A HREF="CmmExpr.html#t%3ACmmExpr"
>CmmExpr</A
> <A HREF="Cmm.html#t%3ACmmActuals"
>CmmActuals</A
></TD
><TD CLASS="rdoc"
>Same as <TT
><A HREF="Cmm.html#v%3ACmmJump"
>CmmJump</A
></TT
>.  Parameters:
   1. The function to call,
   2. Arguments of the call
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FinalCall"
><A NAME="v%3AFinalCall"
></A
></A
><B
>FinalCall</B
> <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> <A HREF="Cmm.html#t%3ACmmCallTarget"
>CmmCallTarget</A
> <A HREF="Cmm.html#t%3ACmmFormals"
>CmmFormals</A
> <A HREF="Cmm.html#t%3ACmmActuals"
>CmmActuals</A
> <A HREF="ClosureInfo.html#t%3AC_SRT"
>C_SRT</A
> <A HREF="Cmm.html#t%3ACmmReturnInfo"
>CmmReturnInfo</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>Same as <TT
><A HREF="Cmm.html#v%3ACmmCallee"
>CmmCallee</A
></TT
> followed by CmmGoto.  Parameters:
   1. Target of the CmmGoto (must be a <TT
><A HREF="CmmBrokenBlock.html#v%3AContinuationEntry"
>ContinuationEntry</A
></TT
>)
   2. The function to call
   3. Results from call (redundant with ContinuationEntry)
   4. Arguments to call
   5. SRT for the continuation's info table
   6. Does the function return?
   7. True <A HREF="="
>=</A
> GC block so ignore stack size
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FinalSwitch"
><A NAME="v%3AFinalSwitch"
></A
></A
><B
>FinalSwitch</B
> <A HREF="CmmExpr.html#t%3ACmmExpr"
>CmmExpr</A
> [<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>]</TD
><TD CLASS="rdoc"
>Same as a <TT
><A HREF="Cmm.html#v%3ACmmSwitch"
>CmmSwitch</A
></TT
>.  Paremeters:
   1. Scrutinee (zero based)
   2. Targets
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:breakBlock"
><A NAME="v%3AbreakBlock"
></A
></A
><B
>breakBlock</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"
>Any GC blocks that should be special
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [<A HREF="Unique.html#t%3AUnique"
>Unique</A
>]</TD
><TD CLASS="rdoc"
>An infinite list of uniques
 to create names of the new blocks with
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Cmm.html#t%3ACmmBasicBlock"
>CmmBasicBlock</A
></TD
><TD CLASS="rdoc"
>Input block to break apart
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo"
>BlockEntryInfo</A
></TD
><TD CLASS="rdoc"
>Info for the first created <TT
><A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; ([(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)], [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
>])</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Takes a <TT
><A HREF="Cmm.html#t%3ACmmBasicBlock"
>CmmBasicBlock</A
></TT
> and breaks it up into a list of <TT
><A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
></TT
>
 by splitting on each <TT
><A HREF="Cmm.html#v%3ACmmCall"
>CmmCall</A
></TT
> in the <TT
><A HREF="Cmm.html#t%3ACmmBasicBlock"
>CmmBasicBlock</A
></TT
>.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cmmBlockFromBrokenBlock"
><A NAME="v%3AcmmBlockFromBrokenBlock"
></A
></A
><B
>cmmBlockFromBrokenBlock</B
> :: <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
> -&gt; <A HREF="Cmm.html#t%3ACmmBasicBlock"
>CmmBasicBlock</A
></TD
></TR
><TR
><TD CLASS="doc"
>Convert from a BrokenBlock back to an equivalent CmmBasicBlock
 Needed by liveness analysis
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:blocksToBlockEnv"
><A NAME="v%3AblocksToBlockEnv"
></A
></A
><B
>blocksToBlockEnv</B
> :: [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
>] -&gt; <A HREF="BlockId.html#t%3ABlockEnv"
>BlockEnv</A
> <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
></TD
></TR
><TR
><TD CLASS="doc"
>Build a mapping so we can lookup a <TT
><A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
></TT
> by its <TT
><A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:adaptBlockToFormat"
><A NAME="v%3AadaptBlockToFormat"
></A
></A
><B
>adaptBlockToFormat</B
> :: [(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)] -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
> -&gt; [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock"
>BrokenBlock</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:selectContinuations"
><A NAME="v%3AselectContinuations"
></A
></A
><B
>selectContinuations</B
> :: [(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)] -&gt; [(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
>)]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ContFormat"
><A NAME="t%3AContFormat"
></A
></A
><B
>ContFormat</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:ContFormat')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ContFormat" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="CmmBrokenBlock.html#t%3AContFormat"
>ContFormat</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
>makeContinuationEntries</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.4.2</TD
></TR
></TABLE
></BODY
></HTML
>