projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix haddock submodule pointer
[ghc-hetmet.git]
/
compiler
/
nativeGen
/
RegAlloc
/
Linear
/
Base.hs
diff --git
a/compiler/nativeGen/RegAlloc/Linear/Base.hs
b/compiler/nativeGen/RegAlloc/Linear/Base.hs
index
087ab9c
..
432acdf
100644
(file)
--- a/
compiler/nativeGen/RegAlloc/Linear/Base.hs
+++ b/
compiler/nativeGen/RegAlloc/Linear/Base.hs
@@
-18,7
+18,6
@@
module RegAlloc.Linear.Base (
where
where
-import RegAlloc.Linear.FreeRegs
import RegAlloc.Linear.StackMap
import RegAlloc.Liveness
import Reg
import RegAlloc.Linear.StackMap
import RegAlloc.Liveness
import Reg
@@
-34,8
+33,8
@@
import UniqSupply
-- target a particular label. We have to insert fixup code to make
-- the register assignments from the different sources match up.
--
-- target a particular label. We have to insert fixup code to make
-- the register assignments from the different sources match up.
--
-type BlockAssignment
- = BlockMap (FreeRegs, RegMap Loc)
+type BlockAssignment freeRegs
+ = BlockMap (freeRegs, RegMap Loc)
-- | Where a vreg is currently stored
-- | Where a vreg is currently stored
@@
-101,16
+100,16
@@
data RegAllocStats
-- | The register alloctor state
-- | The register alloctor state
-data RA_State
+data RA_State freeRegs
= RA_State
{
-- | the current mapping from basic blocks to
-- the register assignments at the beginning of that block.
= RA_State
{
-- | the current mapping from basic blocks to
-- the register assignments at the beginning of that block.
- ra_blockassig :: BlockAssignment
+ ra_blockassig :: BlockAssignment freeRegs
-- | free machine registers
-- | free machine registers
- , ra_freeregs :: {-#UNPACK#-}!FreeRegs
+ , ra_freeregs :: !freeRegs
-- | assignment of temps to locations
, ra_assig :: RegMap Loc
-- | assignment of temps to locations
, ra_assig :: RegMap Loc
@@
-131,7
+130,7
@@
data RA_State
-- | The register allocator monad type.
-- | The register allocator monad type.
-newtype RegM a
- = RegM { unReg :: RA_State -> (# RA_State, a #) }
+newtype RegM freeRegs a
+ = RegM { unReg :: RA_State freeRegs -> (# RA_State freeRegs, a #) }