<!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 >CmmExpr</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_CmmExpr.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" >CmmExpr</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" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ACmmExpr" >CmmExpr</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ACmmLit" >CmmLit</A > <A HREF="CmmExpr.html#t%3ACmmLit" >CmmLit</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmLoad" >CmmLoad</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmReg" >CmmReg</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmMachOp" >CmmMachOp</A > <A HREF="MachOp.html#t%3AMachOp" >MachOp</A > [<A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A >]</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmRegOff" >CmmRegOff</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmStackSlot" >CmmStackSlot</A > <A HREF="CmmExpr.html#t%3AArea" >Area</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcmmExprRep" >cmmExprRep</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmaybeInvertCmmExpr" >maybeInvertCmmExpr</A > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></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%3ACmmReg" >CmmReg</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ACmmLocal" >CmmLocal</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmGlobal" >CmmGlobal</A > <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcmmRegRep" >cmmRegRep</A > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></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%3ACmmLit" >CmmLit</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ACmmInt" >CmmInt</A > <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmFloat" >CmmFloat</A > <A HREF="../base/Prelude.html#t%3ARational" >Rational</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmLabel" >CmmLabel</A > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmLabelOff" >CmmLabelOff</A > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACmmLabelDiffOff" >CmmLabelDiffOff</A > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcmmLitRep" >cmmLitRep</A > :: <A HREF="CmmExpr.html#t%3ACmmLit" >CmmLit</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ALocalReg" >LocalReg</A > = <A HREF="#v%3ALocalReg" >LocalReg</A > !<A HREF="Unique.html#t%3AUnique" >Unique</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A > <A HREF="CmmExpr.html#t%3AGCKind" >GCKind</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlocalRegRep" >localRegRep</A > :: <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlocalRegGCFollow" >localRegGCFollow</A > :: <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3AGCKind" >GCKind</A ></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%3AGCKind" >GCKind</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AGCKindPtr" >GCKindPtr</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AGCKindNonPtr" >GCKindNonPtr</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%3AGlobalReg" >GlobalReg</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AVanillaReg" >VanillaReg</A > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AFloatReg" >FloatReg</A > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ADoubleReg" >DoubleReg</A > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ALongReg" >LongReg</A > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASp" >Sp</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASpLim" >SpLim</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AHp" >Hp</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AHpLim" >HpLim</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACurrentTSO" >CurrentTSO</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACurrentNursery" >CurrentNursery</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AHpAlloc" >HpAlloc</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AGCEnter1" >GCEnter1</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AGCFun" >GCFun</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ABaseReg" >BaseReg</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APicBaseReg" >PicBaseReg</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AglobalRegRep" >globalRegRep</A > :: <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AspReg" >spReg</A > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhpReg" >hpReg</A > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AspLimReg" >spLimReg</A > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnodeReg" >nodeReg</A > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anode" >node</A > :: <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AfoldRegsDefd" >foldRegsDefd</A > :: (b -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> b) -> b -> a -> b</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AfoldRegsUsed" >foldRegsUsed</A > :: (b -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> b) -> b -> a -> b</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfilterRegsUsed" >filterRegsUsed</A > :: <A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > e => (<A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A >) -> e -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ARegSet" >RegSet</A > = <A HREF="UniqSet.html#t%3AUniqSet" >UniqSet</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AemptyRegSet" >emptyRegSet</A > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AelemRegSet" >elemRegSet</A > :: <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AextendRegSet" >extendRegSet</A > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdeleteFromRegSet" >deleteFromRegSet</A > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkRegSet" >mkRegSet</A > :: [<A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A >] -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplusRegSet" >plusRegSet</A > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AminusRegSet" >minusRegSet</A > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtimesRegSet" >timesRegSet</A > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></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%3AArea" >Area</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ARegSlot" >RegSlot</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACallArea" >CallArea</A > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AStackSlotMap" >StackSlotMap</A > = <A HREF="FiniteMap.html#t%3AFiniteMap" >FiniteMap</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetSlot" >getSlot</A > :: <A HREF="CmmExpr.html#t%3AStackSlotMap" >StackSlotMap</A > -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> (<A HREF="CmmExpr.html#t%3AStackSlotMap" >StackSlotMap</A >, <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkCallArea" >mkCallArea</A > :: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> [a] -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > [b] -> <A HREF="CmmExpr.html#t%3AArea" >Area</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AoutgoingSlot" >outgoingSlot</A > :: <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AareaId" >areaId</A > :: <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AareaSize" >areaSize</A > :: <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnarrowU" >narrowU</A > :: <A HREF="MachOp.html#t%3AMachRep" >MachRep</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnarrowS" >narrowS</A > :: <A HREF="MachOp.html#t%3AMachRep" >MachRep</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</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="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:CmmExpr" ><A NAME="t%3ACmmExpr" ></A ></A ><B >CmmExpr</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><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:CmmLit" ><A NAME="v%3ACmmLit" ></A ></A ><B >CmmLit</B > <A HREF="CmmExpr.html#t%3ACmmLit" >CmmLit</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmLoad" ><A NAME="v%3ACmmLoad" ></A ></A ><B >CmmLoad</B > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmReg" ><A NAME="v%3ACmmReg" ></A ></A ><B >CmmReg</B > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmMachOp" ><A NAME="v%3ACmmMachOp" ></A ></A ><B >CmmMachOp</B > <A HREF="MachOp.html#t%3AMachOp" >MachOp</A > [<A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A >]</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmRegOff" ><A NAME="v%3ACmmRegOff" ></A ></A ><B >CmmRegOff</B > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmStackSlot" ><A NAME="v%3ACmmStackSlot" ></A ></A ><B >CmmStackSlot</B > <A HREF="CmmExpr.html#t%3AArea" >Area</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CmmExpr')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:CmmExpr" 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="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:cmmExprRep" ><A NAME="v%3AcmmExprRep" ></A ></A ><B >cmmExprRep</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:maybeInvertCmmExpr" ><A NAME="v%3AmaybeInvertCmmExpr" ></A ></A ><B >maybeInvertCmmExpr</B > :: <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:CmmReg" ><A NAME="t%3ACmmReg" ></A ></A ><B >CmmReg</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><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:CmmLocal" ><A NAME="v%3ACmmLocal" ></A ></A ><B >CmmLocal</B > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmGlobal" ><A NAME="v%3ACmmGlobal" ></A ></A ><B >CmmGlobal</B > <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CmmReg')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:CmmReg" 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="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:cmmRegRep" ><A NAME="v%3AcmmRegRep" ></A ></A ><B >cmmRegRep</B > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:CmmLit" ><A NAME="t%3ACmmLit" ></A ></A ><B >CmmLit</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><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:CmmInt" ><A NAME="v%3ACmmInt" ></A ></A ><B >CmmInt</B > <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmFloat" ><A NAME="v%3ACmmFloat" ></A ></A ><B >CmmFloat</B > <A HREF="../base/Prelude.html#t%3ARational" >Rational</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmLabel" ><A NAME="v%3ACmmLabel" ></A ></A ><B >CmmLabel</B > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmLabelOff" ><A NAME="v%3ACmmLabelOff" ></A ></A ><B >CmmLabelOff</B > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CmmLabelDiffOff" ><A NAME="v%3ACmmLabelDiffOff" ></A ></A ><B >CmmLabelDiffOff</B > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CmmLit')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:CmmLit" 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="CmmExpr.html#t%3ACmmLit" >CmmLit</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="CmmExpr.html#t%3ACmmLit" >CmmLit</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:cmmLitRep" ><A NAME="v%3AcmmLitRep" ></A ></A ><B >cmmLitRep</B > :: <A HREF="CmmExpr.html#t%3ACmmLit" >CmmLit</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:LocalReg" ><A NAME="t%3ALocalReg" ></A ></A ><B >LocalReg</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><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:LocalReg" ><A NAME="v%3ALocalReg" ></A ></A ><B >LocalReg</B > !<A HREF="Unique.html#t%3AUnique" >Unique</A > <A HREF="MachOp.html#t%3AMachRep" >MachRep</A > <A HREF="CmmExpr.html#t%3AGCKind" >GCKind</A ></TD ><TD CLASS="rdoc" >Parameters: 1. Identifier 2. Type 3. Should the GC follow as a pointer </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LocalReg')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:LocalReg" 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="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Unique.html#t%3AUniquable" >Uniquable</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:localRegRep" ><A NAME="v%3AlocalRegRep" ></A ></A ><B >localRegRep</B > :: <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:localRegGCFollow" ><A NAME="v%3AlocalRegGCFollow" ></A ></A ><B >localRegGCFollow</B > :: <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3AGCKind" >GCKind</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:GCKind" ><A NAME="t%3AGCKind" ></A ></A ><B >GCKind</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Whether a <TT ><A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TT > is a GC followable pointer </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:GCKindPtr" ><A NAME="v%3AGCKindPtr" ></A ></A ><B >GCKindPtr</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:GCKindNonPtr" ><A NAME="v%3AGCKindNonPtr" ></A ></A ><B >GCKindNonPtr</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:GCKind')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:GCKind" 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="CmmExpr.html#t%3AGCKind" >GCKind</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:GlobalReg" ><A NAME="t%3AGlobalReg" ></A ></A ><B >GlobalReg</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><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:VanillaReg" ><A NAME="v%3AVanillaReg" ></A ></A ><B >VanillaReg</B > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:FloatReg" ><A NAME="v%3AFloatReg" ></A ></A ><B >FloatReg</B > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:DoubleReg" ><A NAME="v%3ADoubleReg" ></A ></A ><B >DoubleReg</B > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:LongReg" ><A NAME="v%3ALongReg" ></A ></A ><B >LongReg</B > !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Sp" ><A NAME="v%3ASp" ></A ></A ><B >Sp</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:SpLim" ><A NAME="v%3ASpLim" ></A ></A ><B >SpLim</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Hp" ><A NAME="v%3AHp" ></A ></A ><B >Hp</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:HpLim" ><A NAME="v%3AHpLim" ></A ></A ><B >HpLim</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CurrentTSO" ><A NAME="v%3ACurrentTSO" ></A ></A ><B >CurrentTSO</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CurrentNursery" ><A NAME="v%3ACurrentNursery" ></A ></A ><B >CurrentNursery</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:HpAlloc" ><A NAME="v%3AHpAlloc" ></A ></A ><B >HpAlloc</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:GCEnter1" ><A NAME="v%3AGCEnter1" ></A ></A ><B >GCEnter1</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:GCFun" ><A NAME="v%3AGCFun" ></A ></A ><B >GCFun</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:BaseReg" ><A NAME="v%3ABaseReg" ></A ></A ><B >BaseReg</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PicBaseReg" ><A NAME="v%3APicBaseReg" ></A ></A ><B >PicBaseReg</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:GlobalReg')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:GlobalReg" 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="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:globalRegRep" ><A NAME="v%3AglobalRegRep" ></A ></A ><B >globalRegRep</B > :: <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A > -> <A HREF="MachOp.html#t%3AMachRep" >MachRep</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:spReg" ><A NAME="v%3AspReg" ></A ></A ><B >spReg</B > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hpReg" ><A NAME="v%3AhpReg" ></A ></A ><B >hpReg</B > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:spLimReg" ><A NAME="v%3AspLimReg" ></A ></A ><B >spLimReg</B > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:nodeReg" ><A NAME="v%3AnodeReg" ></A ></A ><B >nodeReg</B > :: <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:node" ><A NAME="v%3Anode" ></A ></A ><B >node</B > :: <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A NAME="t:DefinerOfLocalRegs" ><A NAME="t%3ADefinerOfLocalRegs" ></A ></A ><B >DefinerOfLocalRegs</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v:foldRegsDefd" ><A NAME="v%3AfoldRegsDefd" ></A ></A ><B >foldRegsDefd</B > :: (b -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> b) -> b -> a -> b</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DefinerOfLocalRegs')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:DefinerOfLocalRegs" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="ZipCfgCmmRep.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > <A HREF="ZipCfgCmmRep.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > a => <A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > ([] a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > a => <A HREF="CmmExpr.html#t%3ADefinerOfLocalRegs" >DefinerOfLocalRegs</A > (<A HREF="Cmm.html#t%3ACmmKinded" >CmmKinded</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A NAME="t:UserOfLocalRegs" ><A NAME="t%3AUserOfLocalRegs" ></A ></A ><B >UserOfLocalRegs</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v:foldRegsUsed" ><A NAME="v%3AfoldRegsUsed" ></A ></A ><B >foldRegsUsed</B > :: (b -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> b) -> b -> a -> b</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:UserOfLocalRegs')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:UserOfLocalRegs" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ACmmReg" >CmmReg</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="Cmm.html#t%3ACmmCallTarget" >CmmCallTarget</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="Cmm.html#t%3ACmmStmt" >CmmStmt</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="ZipCfgCmmRep.html#t%3ALast" >Last</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > <A HREF="ZipCfgCmmRep.html#t%3AMiddle" >Middle</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > a => <A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > ([] a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > a => <A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > (<A HREF="ZipCfg.html#t%3AZLast" >ZLast</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > a => <A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > (<A HREF="Cmm.html#t%3ACmmKinded" >CmmKinded</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > i => <A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > (<A HREF="Cmm.html#t%3AGenBasicBlock" >GenBasicBlock</A > i)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > m => <A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > (<A HREF="CmmSpillReload.html#t%3AExtendWithSpills" >ExtendWithSpills</A > m)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:filterRegsUsed" ><A NAME="v%3AfilterRegsUsed" ></A ></A ><B >filterRegsUsed</B > :: <A HREF="CmmExpr.html#t%3AUserOfLocalRegs" >UserOfLocalRegs</A > e => (<A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A >) -> e -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:RegSet" ><A NAME="t%3ARegSet" ></A ></A ><B >RegSet</B > = <A HREF="UniqSet.html#t%3AUniqSet" >UniqSet</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptyRegSet" ><A NAME="v%3AemptyRegSet" ></A ></A ><B >emptyRegSet</B > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:elemRegSet" ><A NAME="v%3AelemRegSet" ></A ></A ><B >elemRegSet</B > :: <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:extendRegSet" ><A NAME="v%3AextendRegSet" ></A ></A ><B >extendRegSet</B > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:deleteFromRegSet" ><A NAME="v%3AdeleteFromRegSet" ></A ></A ><B >deleteFromRegSet</B > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkRegSet" ><A NAME="v%3AmkRegSet" ></A ></A ><B >mkRegSet</B > :: [<A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A >] -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:plusRegSet" ><A NAME="v%3AplusRegSet" ></A ></A ><B >plusRegSet</B > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:minusRegSet" ><A NAME="v%3AminusRegSet" ></A ></A ><B >minusRegSet</B > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:timesRegSet" ><A NAME="v%3AtimesRegSet" ></A ></A ><B >timesRegSet</B > :: <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A > -> <A HREF="CmmExpr.html#t%3ARegSet" >RegSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Area" ><A NAME="t%3AArea" ></A ></A ><B >Area</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A stack area is either the stack slot where a variable is spilled or the stack space where function arguments and results are passed. </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:RegSlot" ><A NAME="v%3ARegSlot" ></A ></A ><B >RegSlot</B > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CallArea" ><A NAME="v%3ACallArea" ></A ></A ><B >CallArea</B > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Area')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Area" 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="CmmExpr.html#t%3AArea" >Area</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="CmmExpr.html#t%3AArea" >Area</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="CmmExpr.html#t%3AArea" >Area</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:StackSlotMap" ><A NAME="t%3AStackSlotMap" ></A ></A ><B >StackSlotMap</B > = <A HREF="FiniteMap.html#t%3AFiniteMap" >FiniteMap</A > <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getSlot" ><A NAME="v%3AgetSlot" ></A ></A ><B >getSlot</B > :: <A HREF="CmmExpr.html#t%3AStackSlotMap" >StackSlotMap</A > -> <A HREF="CmmExpr.html#t%3ALocalReg" >LocalReg</A > -> (<A HREF="CmmExpr.html#t%3AStackSlotMap" >StackSlotMap</A >, <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkCallArea" ><A NAME="v%3AmkCallArea" ></A ></A ><B >mkCallArea</B > :: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > -> [a] -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > [b] -> <A HREF="CmmExpr.html#t%3AArea" >Area</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:outgoingSlot" ><A NAME="v%3AoutgoingSlot" ></A ></A ><B >outgoingSlot</B > :: <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:areaId" ><A NAME="v%3AareaId" ></A ></A ><B >areaId</B > :: <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:areaSize" ><A NAME="v%3AareaSize" ></A ></A ><B >areaSize</B > :: <A HREF="CmmExpr.html#t%3AArea" >Area</A > -> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:narrowU" ><A NAME="v%3AnarrowU" ></A ></A ><B >narrowU</B > :: <A HREF="MachOp.html#t%3AMachRep" >MachRep</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:narrowS" ><A NAME="v%3AnarrowS" ></A ></A ><B >narrowS</B > :: <A HREF="MachOp.html#t%3AMachRep" >MachRep</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A > -> <A HREF="../integer/GHC-Integer.html#t%3AInteger" >Integer</A ></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 >