Sophie

Sophie

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

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>RegAlloc.Graph.Coalesce</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_RegAlloc-Graph-Coalesce.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">RegAlloc.Graph.Coalesce</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Register coalescing.
</p></div></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:regCoalesce">regCoalesce</a> :: <a href="Instruction.html#t:Instruction">Instruction</a> instr =&gt; [<a href="RegAlloc-Liveness.html#t:LiveCmmDecl">LiveCmmDecl</a> statics instr] -&gt; <a href="UniqSupply.html#t:UniqSM">UniqSM</a> [<a href="RegAlloc-Liveness.html#t:LiveCmmDecl">LiveCmmDecl</a> statics instr]</li><li class="src short"><a href="#v:slurpJoinMovs">slurpJoinMovs</a> :: <a href="Instruction.html#t:Instruction">Instruction</a> instr =&gt; <a href="RegAlloc-Liveness.html#t:LiveCmmDecl">LiveCmmDecl</a> statics instr -&gt; <a href="Bag.html#t:Bag">Bag</a> (<a href="Reg.html#t:Reg">Reg</a>, <a href="Reg.html#t:Reg">Reg</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:regCoalesce" class="def">regCoalesce</a> :: <a href="Instruction.html#t:Instruction">Instruction</a> instr =&gt; [<a href="RegAlloc-Liveness.html#t:LiveCmmDecl">LiveCmmDecl</a> statics instr] -&gt; <a href="UniqSupply.html#t:UniqSM">UniqSM</a> [<a href="RegAlloc-Liveness.html#t:LiveCmmDecl">LiveCmmDecl</a> statics instr]</p><div class="doc"><p>Do register coalescing on this top level thing
	For Reg -&gt; Reg moves, if the first reg dies at the same time the second reg is born
	then the mov only serves to join live ranges. The two regs can be renamed to be 
	the same and the move instruction safely erased.
</p></div></div><div class="top"><p class="src"><a name="v:slurpJoinMovs" class="def">slurpJoinMovs</a> :: <a href="Instruction.html#t:Instruction">Instruction</a> instr =&gt; <a href="RegAlloc-Liveness.html#t:LiveCmmDecl">LiveCmmDecl</a> statics instr -&gt; <a href="Bag.html#t:Bag">Bag</a> (<a href="Reg.html#t:Reg">Reg</a>, <a href="Reg.html#t:Reg">Reg</a>)</p><div class="doc"><p>Slurp out mov instructions that only serve to join live ranges.
	During a mov, if the source reg dies and the destiation reg is born
	then we can rename the two regs to the same thing and eliminate the move.
</p></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>