Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 8d1ef08c9e0d44c69764afc615a03d0d > files > 1014

ghc-ghc-devel-6.12.3-5.fc14.i686.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
>RegAlloc.Graph.Coalesce</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_RegAlloc-Graph-Coalesce.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>ghc-6.12.3: The GHC API</TD
><TD CLASS="topbut"
><A HREF="src/RegAlloc-Graph-Coalesce.html"
>Source code</A
></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"
>RegAlloc.Graph.Coalesce</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>Register coalescing.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AregCoalesce"
>regCoalesce</A
> :: <A HREF="Instruction.html#t%3AInstruction"
>Instruction</A
> instr =&gt; [<A HREF="RegAlloc-Liveness.html#t%3ALiveCmmTop"
>LiveCmmTop</A
> instr] -&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> [<A HREF="RegAlloc-Liveness.html#t%3ALiveCmmTop"
>LiveCmmTop</A
> instr]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AslurpJoinMovs"
>slurpJoinMovs</A
> :: <A HREF="Instruction.html#t%3AInstruction"
>Instruction</A
> instr =&gt; <A HREF="RegAlloc-Liveness.html#t%3ALiveCmmTop"
>LiveCmmTop</A
> instr -&gt; <A HREF="Bag.html#t%3ABag"
>Bag</A
> (<A HREF="Reg.html#t%3AReg"
>Reg</A
>, <A HREF="Reg.html#t%3AReg"
>Reg</A
>)</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Documentation</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:regCoalesce"
><A NAME="v%3AregCoalesce"
></A
></A
><B
>regCoalesce</B
> :: <A HREF="Instruction.html#t%3AInstruction"
>Instruction</A
> instr =&gt; [<A HREF="RegAlloc-Liveness.html#t%3ALiveCmmTop"
>LiveCmmTop</A
> instr] -&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> [<A HREF="RegAlloc-Liveness.html#t%3ALiveCmmTop"
>LiveCmmTop</A
> instr]</TD
><TD CLASS="declbut"
><A HREF="src/RegAlloc-Graph-Coalesce.html#regCoalesce"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>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.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:slurpJoinMovs"
><A NAME="v%3AslurpJoinMovs"
></A
></A
><B
>slurpJoinMovs</B
> :: <A HREF="Instruction.html#t%3AInstruction"
>Instruction</A
> instr =&gt; <A HREF="RegAlloc-Liveness.html#t%3ALiveCmmTop"
>LiveCmmTop</A
> instr -&gt; <A HREF="Bag.html#t%3ABag"
>Bag</A
> (<A HREF="Reg.html#t%3AReg"
>Reg</A
>, <A HREF="Reg.html#t%3AReg"
>Reg</A
>)</TD
><TD CLASS="declbut"
><A HREF="src/RegAlloc-Graph-Coalesce.html#slurpJoinMovs"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>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.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>