Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 2824

ghc-7.4.2-4.mga5.i586.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>CmmUtils</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_CmmUtils.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">CmmUtils</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Operations that probably don't belong here
</a></li></ul></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"><a href="#v:primRepCmmType">primRepCmmType</a> :: <a href="TyCon.html#t:PrimRep">PrimRep</a> -&gt; <a href="CmmType.html#t:CmmType">CmmType</a></li><li class="src short"><a href="#v:primRepForeignHint">primRepForeignHint</a> :: <a href="TyCon.html#t:PrimRep">PrimRep</a> -&gt; <a href="CmmNode.html#t:ForeignHint">ForeignHint</a></li><li class="src short"><a href="#v:typeCmmType">typeCmmType</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="CmmType.html#t:CmmType">CmmType</a></li><li class="src short"><a href="#v:typeForeignHint">typeForeignHint</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="CmmNode.html#t:ForeignHint">ForeignHint</a></li><li class="src short"><a href="#v:zeroCLit">zeroCLit</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:mkIntCLit">mkIntCLit</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:mkWordCLit">mkWordCLit</a> :: <a href="SMRep.html#t:StgWord">StgWord</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:packHalfWordsCLit">packHalfWordsCLit</a> :: (<a href="../base-4.5.1.0/Prelude.html#t:Integral">Integral</a> a, <a href="../base-4.5.1.0/Prelude.html#t:Integral">Integral</a> b) =&gt; a -&gt; b -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:mkByteStringCLit">mkByteStringCLit</a> ::  <a href="Unique.html#t:Unique">Unique</a> -&gt; [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>] -&gt; (<a href="CmmExpr.html#t:CmmLit">CmmLit</a>, <a href="Cmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="Cmm.html#t:CmmStatics">CmmStatics</a> info stmt)</li><li class="src short"><a href="#v:mkDataLits">mkDataLits</a> ::  <a href="Cmm.html#t:Section">Section</a> -&gt; <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; [<a href="CmmExpr.html#t:CmmLit">CmmLit</a>] -&gt; <a href="Cmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="Cmm.html#t:CmmStatics">CmmStatics</a> info stmt</li><li class="src short"><a href="#v:mkRODataLits">mkRODataLits</a> ::  <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; [<a href="CmmExpr.html#t:CmmLit">CmmLit</a>] -&gt; <a href="Cmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="Cmm.html#t:CmmStatics">CmmStatics</a> info stmt</li><li class="src short"><a href="#v:mkLblExpr">mkLblExpr</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmRegOff">cmmRegOff</a> :: <a href="CmmExpr.html#t:CmmReg">CmmReg</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmOffset">cmmOffset</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmLabelOff">cmmLabelOff</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:cmmOffsetLit">cmmOffsetLit</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:cmmOffsetExpr">cmmOffsetExpr</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmRegOffB">cmmRegOffB</a> :: <a href="CmmExpr.html#t:CmmReg">CmmReg</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmOffsetB">cmmOffsetB</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmLabelOffB">cmmLabelOffB</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:cmmOffsetLitB">cmmOffsetLitB</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:cmmOffsetExprB">cmmOffsetExprB</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmRegOffW">cmmRegOffW</a> :: <a href="CmmExpr.html#t:CmmReg">CmmReg</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmOffsetW">cmmOffsetW</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmLabelOffW">cmmLabelOffW</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:cmmOffsetLitW">cmmOffsetLitW</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></li><li class="src short"><a href="#v:cmmOffsetExprW">cmmOffsetExprW</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmIndex">cmmIndex</a> :: <a href="CmmType.html#t:Width">Width</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmIndexExpr">cmmIndexExpr</a> :: <a href="CmmType.html#t:Width">Width</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmLoadIndex">cmmLoadIndex</a> :: <a href="CmmType.html#t:CmmType">CmmType</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmLoadIndexW">cmmLoadIndexW</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmType.html#t:CmmType">CmmType</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmNegate">cmmNegate</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmULtWord">cmmULtWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmUGeWord">cmmUGeWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmUGtWord">cmmUGtWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmSubWord">cmmSubWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmNeWord">cmmNeWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmEqWord">cmmEqWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmOrWord">cmmOrWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmAndWord">cmmAndWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmUShrWord">cmmUShrWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmAddWord">cmmAddWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmMulWord">cmmMulWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:isTrivialCmmExpr">isTrivialCmmExpr</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:hasNoGlobalRegs">hasNoGlobalRegs</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:blankWord">blankWord</a> :: <a href="Cmm.html#t:CmmStatic">CmmStatic</a></li><li class="src short"><a href="#v:cmmTagMask">cmmTagMask</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmPointerMask">cmmPointerMask</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmUntag">cmmUntag</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmGetTag">cmmGetTag</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmIsTagged">cmmIsTagged</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmConstrTag">cmmConstrTag</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:cmmConstrTag1">cmmConstrTag1</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></li><li class="src short"><a href="#v:mkLiveness">mkLiveness</a> :: [<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="CmmExpr.html#t:LocalReg">LocalReg</a>] -&gt; <a href="SMRep.html#t:Liveness">Liveness</a></li><li class="src short"><a href="#v:modifyGraph">modifyGraph</a> ::  (<a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Graph">Graph</a> n <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Graph">Graph</a> n' <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a>) -&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n -&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n'</li><li class="src short"><a href="#v:lastNode">lastNode</a> :: <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a></li><li class="src short"><a href="#v:replaceLastNode">replaceLastNode</a> ::  <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Block">Block</a> <a href="CmmNode.html#t:CmmNode">CmmNode</a> e <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Block">Block</a> <a href="CmmNode.html#t:CmmNode">CmmNode</a> e <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a></li><li class="src short"><a href="#v:insertBetween">insertBetween</a> :: <a href="UniqSupply.html#t:MonadUnique">MonadUnique</a> m =&gt; <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; [<a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a>] -&gt; <a href="BlockId.html#t:BlockId">BlockId</a> -&gt; m (<a href="Cmm.html#t:CmmBlock">CmmBlock</a>, [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>])</li><li class="src short"><a href="#v:ofBlockMap">ofBlockMap</a> :: <a href="BlockId.html#t:BlockId">BlockId</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></li><li class="src short"><a href="#v:toBlockMap">toBlockMap</a> :: <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a></li><li class="src short"><a href="#v:insertBlock">insertBlock</a> :: <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a></li><li class="src short"><a href="#v:ofBlockList">ofBlockList</a> :: <a href="BlockId.html#t:BlockId">BlockId</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>] -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></li><li class="src short"><a href="#v:toBlockList">toBlockList</a> :: <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>]</li><li class="src short"><a href="#v:bodyToBlockList">bodyToBlockList</a> :: <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Body">Body</a> <a href="CmmNode.html#t:CmmNode">CmmNode</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>]</li><li class="src short"><a href="#v:foldGraphBlocks">foldGraphBlocks</a> ::  (<a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; a -&gt; a) -&gt; a -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; a</li><li class="src short"><a href="#v:mapGraphNodes">mapGraphNodes</a> :: (<a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a>, <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a>, <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a>) -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></li><li class="src short"><a href="#v:postorderDfs">postorderDfs</a> :: <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>]</li><li class="src short"><a href="#v:mapGraphNodes1">mapGraphNodes1</a> :: (<span class="keyword">forall</span> e x.  <a href="CmmNode.html#t:CmmNode">CmmNode</a> e x -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> e x) -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></li><li class="src short"><a href="#v:analFwd">analFwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdTransfer">FwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdPass">FwdPass</a> m n f</li><li class="src short"><a href="#v:analBwd">analBwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdTransfer">BwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdPass">BwdPass</a> m n f</li><li class="src short"><a href="#v:analRewFwd">analRewFwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdTransfer">FwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdRewrite">FwdRewrite</a> m n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdPass">FwdPass</a> m n f</li><li class="src short"><a href="#v:analRewBwd">analRewBwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdTransfer">BwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdRewrite">BwdRewrite</a> m n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdPass">BwdPass</a> m n f</li><li class="src short"><a href="#v:dataflowPassFwd">dataflowPassFwd</a> :: <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:NonLocal">NonLocal</a> n =&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n -&gt; [(<a href="BlockId.html#t:BlockId">BlockId</a>, f)] -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdPass">FwdPass</a> <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> n f -&gt; <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> (<a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n, <a href="BlockId.html#t:BlockEnv">BlockEnv</a> f)</li><li class="src short"><a href="#v:dataflowPassBwd">dataflowPassBwd</a> :: <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:NonLocal">NonLocal</a> n =&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n -&gt; [(<a href="BlockId.html#t:BlockId">BlockId</a>, f)] -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdPass">BwdPass</a> <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> n f -&gt; <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> (<a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n, <a href="BlockId.html#t:BlockEnv">BlockEnv</a> f)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:primRepCmmType" class="def">primRepCmmType</a> :: <a href="TyCon.html#t:PrimRep">PrimRep</a> -&gt; <a href="CmmType.html#t:CmmType">CmmType</a></p></div><div class="top"><p class="src"><a name="v:primRepForeignHint" class="def">primRepForeignHint</a> :: <a href="TyCon.html#t:PrimRep">PrimRep</a> -&gt; <a href="CmmNode.html#t:ForeignHint">ForeignHint</a></p></div><div class="top"><p class="src"><a name="v:typeCmmType" class="def">typeCmmType</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="CmmType.html#t:CmmType">CmmType</a></p></div><div class="top"><p class="src"><a name="v:typeForeignHint" class="def">typeForeignHint</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="CmmNode.html#t:ForeignHint">ForeignHint</a></p></div><div class="top"><p class="src"><a name="v:zeroCLit" class="def">zeroCLit</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:mkIntCLit" class="def">mkIntCLit</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:mkWordCLit" class="def">mkWordCLit</a> :: <a href="SMRep.html#t:StgWord">StgWord</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:packHalfWordsCLit" class="def">packHalfWordsCLit</a> :: (<a href="../base-4.5.1.0/Prelude.html#t:Integral">Integral</a> a, <a href="../base-4.5.1.0/Prelude.html#t:Integral">Integral</a> b) =&gt; a -&gt; b -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:mkByteStringCLit" class="def">mkByteStringCLit</a> ::  <a href="Unique.html#t:Unique">Unique</a> -&gt; [<a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a>] -&gt; (<a href="CmmExpr.html#t:CmmLit">CmmLit</a>, <a href="Cmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="Cmm.html#t:CmmStatics">CmmStatics</a> info stmt)</p></div><div class="top"><p class="src"><a name="v:mkDataLits" class="def">mkDataLits</a> ::  <a href="Cmm.html#t:Section">Section</a> -&gt; <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; [<a href="CmmExpr.html#t:CmmLit">CmmLit</a>] -&gt; <a href="Cmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="Cmm.html#t:CmmStatics">CmmStatics</a> info stmt</p></div><div class="top"><p class="src"><a name="v:mkRODataLits" class="def">mkRODataLits</a> ::  <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; [<a href="CmmExpr.html#t:CmmLit">CmmLit</a>] -&gt; <a href="Cmm.html#t:GenCmmDecl">GenCmmDecl</a> <a href="Cmm.html#t:CmmStatics">CmmStatics</a> info stmt</p></div><div class="top"><p class="src"><a name="v:mkLblExpr" class="def">mkLblExpr</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmRegOff" class="def">cmmRegOff</a> :: <a href="CmmExpr.html#t:CmmReg">CmmReg</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmOffset" class="def">cmmOffset</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmLabelOff" class="def">cmmLabelOff</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetLit" class="def">cmmOffsetLit</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetExpr" class="def">cmmOffsetExpr</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmRegOffB" class="def">cmmRegOffB</a> :: <a href="CmmExpr.html#t:CmmReg">CmmReg</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetB" class="def">cmmOffsetB</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmLabelOffB" class="def">cmmLabelOffB</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetLitB" class="def">cmmOffsetLitB</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a> -&gt; <a href="SMRep.html#t:ByteOff">ByteOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetExprB" class="def">cmmOffsetExprB</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmRegOffW" class="def">cmmRegOffW</a> :: <a href="CmmExpr.html#t:CmmReg">CmmReg</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetW" class="def">cmmOffsetW</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmLabelOffW" class="def">cmmLabelOffW</a> :: <a href="CLabel.html#t:CLabel">CLabel</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetLitW" class="def">cmmOffsetLitW</a> :: <a href="CmmExpr.html#t:CmmLit">CmmLit</a> -&gt; <a href="SMRep.html#t:WordOff">WordOff</a> -&gt; <a href="CmmExpr.html#t:CmmLit">CmmLit</a></p></div><div class="top"><p class="src"><a name="v:cmmOffsetExprW" class="def">cmmOffsetExprW</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmIndex" class="def">cmmIndex</a> :: <a href="CmmType.html#t:Width">Width</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p><div class="doc"><p>Useful for creating an index into an array, with a staticaly known offset.
 The type is the element type; used for making the multiplier
</p></div></div><div class="top"><p class="src"><a name="v:cmmIndexExpr" class="def">cmmIndexExpr</a> :: <a href="CmmType.html#t:Width">Width</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p><div class="doc"><p>Useful for creating an index into an array, with an unknown offset.
</p></div></div><div class="top"><p class="src"><a name="v:cmmLoadIndex" class="def">cmmLoadIndex</a> :: <a href="CmmType.html#t:CmmType">CmmType</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmLoadIndexW" class="def">cmmLoadIndexW</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CmmType.html#t:CmmType">CmmType</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmNegate" class="def">cmmNegate</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmULtWord" class="def">cmmULtWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmUGeWord" class="def">cmmUGeWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmUGtWord" class="def">cmmUGtWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmSubWord" class="def">cmmSubWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmNeWord" class="def">cmmNeWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmEqWord" class="def">cmmEqWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmOrWord" class="def">cmmOrWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmAndWord" class="def">cmmAndWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmUShrWord" class="def">cmmUShrWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmAddWord" class="def">cmmAddWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmMulWord" class="def">cmmMulWord</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:isTrivialCmmExpr" class="def">isTrivialCmmExpr</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:hasNoGlobalRegs" class="def">hasNoGlobalRegs</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:blankWord" class="def">blankWord</a> :: <a href="Cmm.html#t:CmmStatic">CmmStatic</a></p></div><div class="top"><p class="src"><a name="v:cmmTagMask" class="def">cmmTagMask</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmPointerMask" class="def">cmmPointerMask</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmUntag" class="def">cmmUntag</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmGetTag" class="def">cmmGetTag</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmIsTagged" class="def">cmmIsTagged</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmConstrTag" class="def">cmmConstrTag</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:cmmConstrTag1" class="def">cmmConstrTag1</a> :: <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a> -&gt; <a href="CmmExpr.html#t:CmmExpr">CmmExpr</a></p></div><div class="top"><p class="src"><a name="v:mkLiveness" class="def">mkLiveness</a> :: [<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="CmmExpr.html#t:LocalReg">LocalReg</a>] -&gt; <a href="SMRep.html#t:Liveness">Liveness</a></p></div><h1 id="g:1">Operations that probably don't belong here
</h1><div class="top"><p class="src"><a name="v:modifyGraph" class="def">modifyGraph</a> ::  (<a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Graph">Graph</a> n <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Graph">Graph</a> n' <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a>) -&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n -&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n'</p></div><div class="top"><p class="src"><a name="v:lastNode" class="def">lastNode</a> :: <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a></p></div><div class="top"><p class="src"><a name="v:replaceLastNode" class="def">replaceLastNode</a> ::  <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Block">Block</a> <a href="CmmNode.html#t:CmmNode">CmmNode</a> e <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Block">Block</a> <a href="CmmNode.html#t:CmmNode">CmmNode</a> e <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a></p></div><div class="top"><p class="src"><a name="v:insertBetween" class="def">insertBetween</a> :: <a href="UniqSupply.html#t:MonadUnique">MonadUnique</a> m =&gt; <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; [<a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a>] -&gt; <a href="BlockId.html#t:BlockId">BlockId</a> -&gt; m (<a href="Cmm.html#t:CmmBlock">CmmBlock</a>, [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>])</p></div><div class="top"><p class="src"><a name="v:ofBlockMap" class="def">ofBlockMap</a> :: <a href="BlockId.html#t:BlockId">BlockId</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></p></div><div class="top"><p class="src"><a name="v:toBlockMap" class="def">toBlockMap</a> :: <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a></p></div><div class="top"><p class="src"><a name="v:insertBlock" class="def">insertBlock</a> :: <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:LabelMap">LabelMap</a> <a href="Cmm.html#t:CmmBlock">CmmBlock</a></p></div><div class="top"><p class="src"><a name="v:ofBlockList" class="def">ofBlockList</a> :: <a href="BlockId.html#t:BlockId">BlockId</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>] -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></p></div><div class="top"><p class="src"><a name="v:toBlockList" class="def">toBlockList</a> :: <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>]</p></div><div class="top"><p class="src"><a name="v:bodyToBlockList" class="def">bodyToBlockList</a> :: <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:Body">Body</a> <a href="CmmNode.html#t:CmmNode">CmmNode</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>]</p></div><div class="top"><p class="src"><a name="v:foldGraphBlocks" class="def">foldGraphBlocks</a> ::  (<a href="Cmm.html#t:CmmBlock">CmmBlock</a> -&gt; a -&gt; a) -&gt; a -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; a</p></div><div class="top"><p class="src"><a name="v:mapGraphNodes" class="def">mapGraphNodes</a> :: (<a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a>, <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a>, <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a> -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:O">O</a> <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:C">C</a>) -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></p></div><div class="top"><p class="src"><a name="v:postorderDfs" class="def">postorderDfs</a> :: <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; [<a href="Cmm.html#t:CmmBlock">CmmBlock</a>]</p></div><div class="top"><p class="src"><a name="v:mapGraphNodes1" class="def">mapGraphNodes1</a> :: (<span class="keyword">forall</span> e x.  <a href="CmmNode.html#t:CmmNode">CmmNode</a> e x -&gt; <a href="CmmNode.html#t:CmmNode">CmmNode</a> e x) -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a> -&gt; <a href="Cmm.html#t:CmmGraph">CmmGraph</a></p></div><div class="top"><p class="src"><a name="v:analFwd" class="def">analFwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdTransfer">FwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdPass">FwdPass</a> m n f</p></div><div class="top"><p class="src"><a name="v:analBwd" class="def">analBwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdTransfer">BwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdPass">BwdPass</a> m n f</p></div><div class="top"><p class="src"><a name="v:analRewFwd" class="def">analRewFwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdTransfer">FwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdRewrite">FwdRewrite</a> m n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdPass">FwdPass</a> m n f</p></div><div class="top"><p class="src"><a name="v:analRewBwd" class="def">analRewBwd</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:DataflowLattice">DataflowLattice</a> f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdTransfer">BwdTransfer</a> n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdRewrite">BwdRewrite</a> m n f -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdPass">BwdPass</a> m n f</p></div><div class="top"><p class="src"><a name="v:dataflowPassFwd" class="def">dataflowPassFwd</a> :: <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:NonLocal">NonLocal</a> n =&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n -&gt; [(<a href="BlockId.html#t:BlockId">BlockId</a>, f)] -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:FwdPass">FwdPass</a> <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> n f -&gt; <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> (<a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n, <a href="BlockId.html#t:BlockEnv">BlockEnv</a> f)</p></div><div class="top"><p class="src"><a name="v:dataflowPassBwd" class="def">dataflowPassBwd</a> :: <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:NonLocal">NonLocal</a> n =&gt; <a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n -&gt; [(<a href="BlockId.html#t:BlockId">BlockId</a>, f)] -&gt; <a href="../hoopl-3.8.7.3/Compiler-Hoopl.html#t:BwdPass">BwdPass</a> <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> n f -&gt; <a href="OptimizationFuel.html#t:FuelUniqSM">FuelUniqSM</a> (<a href="Cmm.html#t:GenCmmGraph">GenCmmGraph</a> n, <a href="BlockId.html#t:BlockEnv">BlockEnv</a> f)</p></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>