Sophie

Sophie

distrib > Mageia > 3 > x86_64 > by-pkgid > d5d42515f78bdb3a5381de09f2cf4125 > files > 953

ghc-doc-7.4.2-2.mga3.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>OldCmm</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_OldCmm.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">OldCmm</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:CmmGroup">CmmGroup</a> = <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> <a href="OldCmm.html#t:CmmInfo">CmmInfo</a> (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:GenCmmGroup">GenCmmGroup</a> d h g = [<a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> d h g]</li><li class="src short"><span class="keyword">type</span> <a href="#t:RawCmmGroup">RawCmmGroup</a> = <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a>) (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:CmmDecl">CmmDecl</a> = <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> <a href="OldCmm.html#t:CmmInfo">CmmInfo</a> (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:RawCmmDecl">RawCmmDecl</a> = <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a>) (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ListGraph">ListGraph</a> i = <a href="#v:ListGraph">ListGraph</a> [<a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmInfo">CmmInfo</a>  = <a href="#v:CmmInfo">CmmInfo</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="BlockId.html#t:BlockId">BlockId</a>) (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="OldCmm.html#t:UpdateFrame">UpdateFrame</a>) <a href="OldCmm.html#t:CmmInfoTable">CmmInfoTable</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:UpdateFrame">UpdateFrame</a>  = <a href="#v:UpdateFrame">UpdateFrame</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> [<a href="CmmExpr.html#t:CmmExpr">CmmExpr</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmInfoTable">CmmInfoTable</a> <ul class="subs"><li>= <a href="#v:CmmInfoTable">CmmInfoTable</a> { <ul class="subs"><li><a href="#v:cit_lbl">cit_lbl</a> :: <a href="CLabel.html#t:CLabel">CLabel</a></li><li><a href="#v:cit_rep">cit_rep</a> :: <a href="SMRep.html#t:SMRep">SMRep</a></li><li><a href="#v:cit_prof">cit_prof</a> :: <a href="OldCmm.html#t:ProfilingInfo">ProfilingInfo</a></li><li><a href="#v:cit_srt">cit_srt</a> :: <a href="OldCmm.html#t:C_SRT">C_SRT</a></li></ul> }</li><li>| <a href="#v:CmmNonInfoTable">CmmNonInfoTable</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ClosureTypeInfo">ClosureTypeInfo</a> <ul class="subs"><li>= <a href="#v:Constr">Constr</a> ConstrTag <a href="SMRep.html#t:ConstrDescription">ConstrDescription</a>  </li><li>| <a href="#v:Fun">Fun</a> FunArity <a href="SMRep.html#t:ArgDescr">ArgDescr</a>  </li><li>| <a href="#v:Thunk">Thunk</a>  </li><li>| <a href="#v:ThunkSelector">ThunkSelector</a> SelectorOffset  </li><li>| <a href="#v:BlackHole">BlackHole</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmStatic">CmmStatic</a> <ul class="subs"><li>= <a href="#v:CmmStaticLit">CmmStaticLit</a> <a href="CmmExpr.html#t:CmmLit">CmmLit</a>  </li><li>| <a href="#v:CmmUninitialised">CmmUninitialised</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>  </li><li>| <a href="#v:CmmString">CmmString</a> [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmStatics">CmmStatics</a>  = <a href="#v:Statics">Statics</a> <a href="CLabel.html#t:CLabel">CLabel</a> [<a href="OldCmm.html#t:CmmStatic">CmmStatic</a>]</li><li class="src short"><span class="keyword">type</span> <a href="#t:CmmFormal">CmmFormal</a> = <a href="CmmExpr.html#t:LocalReg">LocalReg</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:CmmActual">CmmActual</a> = <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmMapGraph">cmmMapGraph</a> ::  (g -&gt; g') -&gt; <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> d h g -&gt; <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> d h g'</li><li class="src short"><a href="#v:cmmTopMapGraph">cmmTopMapGraph</a> ::  (g -&gt; g') -&gt; <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> d h g -&gt; <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> d h g'</li><li class="src short"><span class="keyword">data</span>  <a href="#t:GenBasicBlock">GenBasicBlock</a> i = <a href="#v:BasicBlock">BasicBlock</a> <a href="BlockId.html#t:BlockId">BlockId</a> [i]</li><li class="src short"><span class="keyword">type</span> <a href="#t:CmmBasicBlock">CmmBasicBlock</a> = <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a></li><li class="src short"><a href="#v:blockId">blockId</a> ::  <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i -&gt; <a href="BlockId.html#t:BlockId">BlockId</a></li><li class="src short"><a href="#v:blockStmts">blockStmts</a> ::  <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i -&gt; [i]</li><li class="src short"><a href="#v:mapBlockStmts">mapBlockStmts</a> ::  (i -&gt; i') -&gt; <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i -&gt; <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i'</li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmStmt">CmmStmt</a> <ul class="subs"><li>= <a href="#v:CmmNop">CmmNop</a>  </li><li>| <a href="#v:CmmComment">CmmComment</a> <a href="FastString.html#t:FastString">FastString</a>  </li><li>| <a href="#v:CmmAssign">CmmAssign</a> <a href="CmmExpr.html#t:CmmReg">CmmReg</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a>  </li><li>| <a href="#v:CmmStore">CmmStore</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a>  </li><li>| <a href="#v:CmmCall">CmmCall</a> <a href="OldCmm.html#t:CmmCallTarget">CmmCallTarget</a> [<a href="OldCmm.html#t:HintedCmmFormal">HintedCmmFormal</a>] [<a href="OldCmm.html#t:HintedCmmActual">HintedCmmActual</a>] <a href="OldCmm.html#t:CmmReturnInfo">CmmReturnInfo</a>  </li><li>| <a href="#v:CmmBranch">CmmBranch</a> <a href="BlockId.html#t:BlockId">BlockId</a>  </li><li>| <a href="#v:CmmCondBranch">CmmCondBranch</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> <a href="BlockId.html#t:BlockId">BlockId</a>  </li><li>| <a href="#v:CmmSwitch">CmmSwitch</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> [<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="BlockId.html#t:BlockId">BlockId</a>]  </li><li>| <a href="#v:CmmJump">CmmJump</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> [<a href="OldCmm.html#t:HintedCmmActual">HintedCmmActual</a>]  </li><li>| <a href="#v:CmmReturn">CmmReturn</a> [<a href="OldCmm.html#t:HintedCmmActual">HintedCmmActual</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmReturnInfo">CmmReturnInfo</a> <ul class="subs"><li>= <a href="#v:CmmMayReturn">CmmMayReturn</a>  </li><li>| <a href="#v:CmmNeverReturns">CmmNeverReturns</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmHinted">CmmHinted</a> a = <a href="#v:CmmHinted">CmmHinted</a> {<ul class="subs"><li><a href="#v:hintlessCmm">hintlessCmm</a> :: a</li><li><a href="#v:cmmHint">cmmHint</a> :: <a href="OldCmm.html#t:ForeignHint">ForeignHint</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:HintedCmmFormal">HintedCmmFormal</a> = <a href="OldCmm.html#t:CmmHinted">CmmHinted</a> <a href="OldCmm.html#t:CmmFormal">CmmFormal</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:HintedCmmActual">HintedCmmActual</a> = <a href="OldCmm.html#t:CmmHinted">CmmHinted</a> <a href="OldCmm.html#t:CmmActual">CmmActual</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmSafety">CmmSafety</a> <ul class="subs"><li>= <a href="#v:CmmUnsafe">CmmUnsafe</a>  </li><li>| <a href="#v:CmmSafe">CmmSafe</a> <a href="OldCmm.html#t:C_SRT">C_SRT</a>  </li><li>| <a href="#v:CmmInterruptible">CmmInterruptible</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CmmCallTarget">CmmCallTarget</a> <ul class="subs"><li>= <a href="#v:CmmCallee">CmmCallee</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> <a href="ForeignCall.html#t:CCallConv">CCallConv</a>  </li><li>| <a href="#v:CmmPrim">CmmPrim</a> <a href="CmmMachOp.html#t:CallishMachOp">CallishMachOp</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GenCmmDecl">GenCmmDecl</a> d h g<ul class="subs"><li>= <a href="#v:CmmProc">CmmProc</a> h <a href="CLabel.html#t:CLabel">CLabel</a> g  </li><li>| <a href="#v:CmmData">CmmData</a> <a href="OldCmm.html#t:Section">Section</a> d  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ForeignHint">ForeignHint</a> <ul class="subs"><li>= <a href="#v:NoHint">NoHint</a>  </li><li>| <a href="#v:AddrHint">AddrHint</a>  </li><li>| <a href="#v:SignedHint">SignedHint</a>  </li></ul></li><li class="src short">module <a href="CmmExpr.html">CmmExpr</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Section">Section</a> <ul class="subs"><li>= <a href="#v:Text">Text</a>  </li><li>| <a href="#v:Data">Data</a>  </li><li>| <a href="#v:ReadOnlyData">ReadOnlyData</a>  </li><li>| <a href="#v:RelocatableReadOnlyData">RelocatableReadOnlyData</a>  </li><li>| <a href="#v:UninitialisedData">UninitialisedData</a>  </li><li>| <a href="#v:ReadOnlyData16">ReadOnlyData16</a>  </li><li>| <a href="#v:OtherSection">OtherSection</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ProfilingInfo">ProfilingInfo</a> <ul class="subs"><li>= <a href="#v:NoProfilingInfo">NoProfilingInfo</a>  </li><li>| <a href="#v:ProfilingInfo">ProfilingInfo</a> [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>] [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:C_SRT">C_SRT</a> <ul class="subs"><li>= <a href="#v:NoC_SRT">NoC_SRT</a>  </li><li>| <a href="#v:C_SRT">C_SRT</a> !<a href="CLabel.html#t:CLabel">CLabel</a> !<a href="SMRep.html#t:WordOff">WordOff</a> !<a href="SMRep.html#t:StgHalfWord">StgHalfWord</a>  </li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CmmGroup" class="def">CmmGroup</a> = <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> <a href="OldCmm.html#t:CmmInfo">CmmInfo</a> (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</p><div class="doc"><p>Cmm with the info table as a data type
</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:GenCmmGroup" class="def">GenCmmGroup</a> d h g = [<a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> d h g]</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:RawCmmGroup" class="def">RawCmmGroup</a> = <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a>) (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</p><div class="doc"><p>Cmm with the info tables converted to a list of <code><a href="OldCmm.html#t:CmmStatic">CmmStatic</a></code> along with the info
 table label. If we are building without tables-next-to-code there will be no statics
</p><p>INVARIANT: if there is an info table, it has at least one CmmStatic
</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CmmDecl" class="def">CmmDecl</a> = <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> <a href="OldCmm.html#t:CmmInfo">CmmInfo</a> (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:RawCmmDecl" class="def">RawCmmDecl</a> = <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a>) (<a href="OldCmm.html#t:ListGraph">ListGraph</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a>)</p></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:ListGraph" class="def">ListGraph</a> i </p><div class="doc"><p>A control-flow graph represented as a list of extended basic blocks.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ListGraph" class="def">ListGraph</a> [<a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i]</td><td class="doc"><p>Code, may be empty.  The first block is the entry point.  The
 order is otherwise initially unimportant, but at some point the
 code gen will fix the order.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:ListGraph" class="caption collapser" onclick="toggleSection('i:ListGraph')">Instances</p><div id="section.i:ListGraph" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> instr =&gt; <a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> (<a href="OldCmm.html#t:ListGraph">ListGraph</a> instr)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmInfo" class="def">CmmInfo</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmInfo" class="def">CmmInfo</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="BlockId.html#t:BlockId">BlockId</a>) (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="OldCmm.html#t:UpdateFrame">UpdateFrame</a>) <a href="OldCmm.html#t:CmmInfoTable">CmmInfoTable</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmInfo" class="caption collapser" onclick="toggleSection('i:CmmInfo')">Instances</p><div id="section.i:CmmInfo" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:CmmInfo">CmmInfo</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:UpdateFrame" class="def">UpdateFrame</a>  </p><div class="doc"><p>A frame that is to be pushed before entry to the function.
 Used to handle <code>update</code> frames.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UpdateFrame" class="def">UpdateFrame</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> [<a href="CmmExpr.html#t:CmmExpr">CmmExpr</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmInfoTable" class="def">CmmInfoTable</a>  </p><div class="doc"><p>Info table as a haskell data type
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmInfoTable" class="def">CmmInfoTable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cit_lbl" class="def">cit_lbl</a> :: <a href="CLabel.html#t:CLabel">CLabel</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cit_rep" class="def">cit_rep</a> :: <a href="SMRep.html#t:SMRep">SMRep</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cit_prof" class="def">cit_prof</a> :: <a href="OldCmm.html#t:ProfilingInfo">ProfilingInfo</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cit_srt" class="def">cit_srt</a> :: <a href="OldCmm.html#t:C_SRT">C_SRT</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:CmmNonInfoTable" class="def">CmmNonInfoTable</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmInfoTable" class="caption collapser" onclick="toggleSection('i:CmmInfoTable')">Instances</p><div id="section.i:CmmInfoTable" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:CmmInfoTable">CmmInfoTable</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ClosureTypeInfo" class="def">ClosureTypeInfo</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Constr" class="def">Constr</a> ConstrTag <a href="SMRep.html#t:ConstrDescription">ConstrDescription</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Fun" class="def">Fun</a> FunArity <a href="SMRep.html#t:ArgDescr">ArgDescr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Thunk" class="def">Thunk</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ThunkSelector" class="def">ThunkSelector</a> SelectorOffset</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:BlackHole" class="def">BlackHole</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ClosureTypeInfo" class="caption collapser" onclick="toggleSection('i:ClosureTypeInfo')">Instances</p><div id="section.i:ClosureTypeInfo" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="OldCmm.html#t:ClosureTypeInfo">ClosureTypeInfo</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmStatic" class="def">CmmStatic</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmStaticLit" class="def">CmmStaticLit</a> <a href="CmmExpr.html#t:CmmLit">CmmLit</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmUninitialised" class="def">CmmUninitialised</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmString" class="def">CmmString</a> [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmStatic" class="caption collapser" onclick="toggleSection('i:CmmStatic')">Instances</p><div id="section.i:CmmStatic" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:CmmStatic">CmmStatic</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmStatics" class="def">CmmStatics</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Statics" class="def">Statics</a> <a href="CLabel.html#t:CLabel">CLabel</a> [<a href="OldCmm.html#t:CmmStatic">CmmStatic</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmStatics" class="caption collapser" onclick="toggleSection('i:CmmStatics')">Instances</p><div id="section.i:CmmStatics" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:CmmStatics">CmmStatics</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CmmFormal" class="def">CmmFormal</a> = <a href="CmmExpr.html#t:LocalReg">LocalReg</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CmmActual" class="def">CmmActual</a> = <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmMapGraph" class="def">cmmMapGraph</a> ::  (g -&gt; g') -&gt; <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> d h g -&gt; <a href="OldCmm.html#t:GenCmmGroup">GenCmmGroup</a> d h g'</p></div><div class="top"><p class="src"><a name="v:cmmTopMapGraph" class="def">cmmTopMapGraph</a> ::  (g -&gt; g') -&gt; <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> d h g -&gt; <a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> d h g'</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:GenBasicBlock" class="def">GenBasicBlock</a> i </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BasicBlock" class="def">BasicBlock</a> <a href="BlockId.html#t:BlockId">BlockId</a> [i]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:GenBasicBlock" class="caption collapser" onclick="toggleSection('i:GenBasicBlock')">Instances</p><div id="section.i:GenBasicBlock" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> instr =&gt; <a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> (<a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> instr)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="CmmExpr.html#t:UserOfLocalRegs">UserOfLocalRegs</a> i =&gt; <a href="CmmExpr.html#t:UserOfLocalRegs">UserOfLocalRegs</a> (<a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CmmBasicBlock" class="def">CmmBasicBlock</a> = <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a></p></div><div class="top"><p class="src"><a name="v:blockId" class="def">blockId</a> ::  <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i -&gt; <a href="BlockId.html#t:BlockId">BlockId</a></p></div><div class="top"><p class="src"><a name="v:blockStmts" class="def">blockStmts</a> ::  <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i -&gt; [i]</p></div><div class="top"><p class="src"><a name="v:mapBlockStmts" class="def">mapBlockStmts</a> ::  (i -&gt; i') -&gt; <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i -&gt; <a href="OldCmm.html#t:GenBasicBlock">GenBasicBlock</a> i'</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmStmt" class="def">CmmStmt</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmNop" class="def">CmmNop</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmComment" class="def">CmmComment</a> <a href="FastString.html#t:FastString">FastString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmAssign" class="def">CmmAssign</a> <a href="CmmExpr.html#t:CmmReg">CmmReg</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmStore" class="def">CmmStore</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmCall" class="def">CmmCall</a> <a href="OldCmm.html#t:CmmCallTarget">CmmCallTarget</a> [<a href="OldCmm.html#t:HintedCmmFormal">HintedCmmFormal</a>] [<a href="OldCmm.html#t:HintedCmmActual">HintedCmmActual</a>] <a href="OldCmm.html#t:CmmReturnInfo">CmmReturnInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmBranch" class="def">CmmBranch</a> <a href="BlockId.html#t:BlockId">BlockId</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmCondBranch" class="def">CmmCondBranch</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> <a href="BlockId.html#t:BlockId">BlockId</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmSwitch" class="def">CmmSwitch</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> [<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="BlockId.html#t:BlockId">BlockId</a>]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmJump" class="def">CmmJump</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> [<a href="OldCmm.html#t:HintedCmmActual">HintedCmmActual</a>]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmReturn" class="def">CmmReturn</a> [<a href="OldCmm.html#t:HintedCmmActual">HintedCmmActual</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmStmt" class="caption collapser" onclick="toggleSection('i:CmmStmt')">Instances</p><div id="section.i:CmmStmt" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="CmmExpr.html#t:UserOfLocalRegs">UserOfLocalRegs</a> <a href="OldCmm.html#t:CmmStmt">CmmStmt</a></td><td class="doc"><p>enable us to fold used registers over '[CmmActual]' and '[CmmFormal]'
</p></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmReturnInfo" class="def">CmmReturnInfo</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmMayReturn" class="def">CmmMayReturn</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmNeverReturns" class="def">CmmNeverReturns</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmReturnInfo" class="caption collapser" onclick="toggleSection('i:CmmReturnInfo')">Instances</p><div id="section.i:CmmReturnInfo" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="OldCmm.html#t:CmmReturnInfo">CmmReturnInfo</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmHinted" class="def">CmmHinted</a> a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmHinted" class="def">CmmHinted</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:hintlessCmm" class="def">hintlessCmm</a> :: a</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cmmHint" class="def">cmmHint</a> :: <a href="OldCmm.html#t:ForeignHint">ForeignHint</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:CmmHinted" class="caption collapser" onclick="toggleSection('i:CmmHinted')">Instances</p><div id="section.i:CmmHinted" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="OldCmm.html#t:CmmHinted">CmmHinted</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> a =&gt; <a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> (<a href="OldCmm.html#t:CmmHinted">CmmHinted</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> a =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="OldCmm.html#t:CmmHinted">CmmHinted</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="CmmExpr.html#t:UserOfSlots">UserOfSlots</a> a =&gt; <a href="CmmExpr.html#t:UserOfSlots">UserOfSlots</a> (<a href="OldCmm.html#t:CmmHinted">CmmHinted</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="CmmExpr.html#t:DefinerOfLocalRegs">DefinerOfLocalRegs</a> a =&gt; <a href="CmmExpr.html#t:DefinerOfLocalRegs">DefinerOfLocalRegs</a> (<a href="OldCmm.html#t:CmmHinted">CmmHinted</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="CmmExpr.html#t:UserOfLocalRegs">UserOfLocalRegs</a> a =&gt; <a href="CmmExpr.html#t:UserOfLocalRegs">UserOfLocalRegs</a> (<a href="OldCmm.html#t:CmmHinted">CmmHinted</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:HintedCmmFormal" class="def">HintedCmmFormal</a> = <a href="OldCmm.html#t:CmmHinted">CmmHinted</a> <a href="OldCmm.html#t:CmmFormal">CmmFormal</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:HintedCmmActual" class="def">HintedCmmActual</a> = <a href="OldCmm.html#t:CmmHinted">CmmHinted</a> <a href="OldCmm.html#t:CmmActual">CmmActual</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmSafety" class="def">CmmSafety</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmUnsafe" class="def">CmmUnsafe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmSafe" class="def">CmmSafe</a> <a href="OldCmm.html#t:C_SRT">C_SRT</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmInterruptible" class="def">CmmInterruptible</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmSafety" class="caption collapser" onclick="toggleSection('i:CmmSafety')">Instances</p><div id="section.i:CmmSafety" class="show"><table><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:CmmSafety">CmmSafety</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CmmCallTarget" class="def">CmmCallTarget</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmCallee" class="def">CmmCallee</a> <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> <a href="ForeignCall.html#t:CCallConv">CCallConv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmPrim" class="def">CmmPrim</a> <a href="CmmMachOp.html#t:CallishMachOp">CallishMachOp</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CmmCallTarget" class="caption collapser" onclick="toggleSection('i:CmmCallTarget')">Instances</p><div id="section.i:CmmCallTarget" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="OldCmm.html#t:CmmCallTarget">CmmCallTarget</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="CmmExpr.html#t:UserOfSlots">UserOfSlots</a> <a href="OldCmm.html#t:CmmCallTarget">CmmCallTarget</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="CmmExpr.html#t:UserOfLocalRegs">UserOfLocalRegs</a> <a href="OldCmm.html#t:CmmCallTarget">CmmCallTarget</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:GenCmmDecl" class="def">GenCmmDecl</a> d h g </p><div class="doc"><p>A top-level chunk, abstracted over the type of the contents of
 the basic blocks (Cmm or instructions are the likely instantiations).
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CmmProc" class="def">CmmProc</a> h <a href="CLabel.html#t:CLabel">CLabel</a> g</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CmmData" class="def">CmmData</a> <a href="OldCmm.html#t:Section">Section</a> d</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:GenCmmDecl" class="caption collapser" onclick="toggleSection('i:GenCmmDecl')">Instances</p><div id="section.i:GenCmmDecl" class="show"><table><tr><td class="src">(<a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> d, <a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> info, <a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> i) =&gt; <a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> (<a href="OldCmm.html#t:GenCmmDecl">GenCmmDecl</a> d info i)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ForeignHint" class="def">ForeignHint</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NoHint" class="def">NoHint</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AddrHint" class="def">AddrHint</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SignedHint" class="def">SignedHint</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ForeignHint" class="caption collapser" onclick="toggleSection('i:ForeignHint')">Instances</p><div id="section.i:ForeignHint" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="OldCmm.html#t:ForeignHint">ForeignHint</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:ForeignHint">ForeignHint</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="OldCmm.html#t:ForeignHint">ForeignHint</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src">module <a href="CmmExpr.html">CmmExpr</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Section" class="def">Section</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Text" class="def">Text</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Data" class="def">Data</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ReadOnlyData" class="def">ReadOnlyData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RelocatableReadOnlyData" class="def">RelocatableReadOnlyData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:UninitialisedData" class="def">UninitialisedData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ReadOnlyData16" class="def">ReadOnlyData16</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:OtherSection" class="def">OtherSection</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ProfilingInfo" class="def">ProfilingInfo</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NoProfilingInfo" class="def">NoProfilingInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ProfilingInfo" class="def">ProfilingInfo</a> [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>] [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:C_SRT" class="def">C_SRT</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NoC_SRT" class="def">NoC_SRT</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:C_SRT" class="def">C_SRT</a> !<a href="CLabel.html#t:CLabel">CLabel</a> !<a href="SMRep.html#t:WordOff">WordOff</a> !<a href="SMRep.html#t:StgHalfWord">StgHalfWord</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:C_SRT" class="caption collapser" onclick="toggleSection('i:C_SRT')">Instances</p><div id="section.i:C_SRT" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="OldCmm.html#t:C_SRT">C_SRT</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:PlatformOutputable">PlatformOutputable</a> <a href="OldCmm.html#t:C_SRT">C_SRT</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>