projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Split Reg into vreg/hreg and add register pairs
[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
a986c0f
..
2626232
100644
(file)
--- a/
compiler/nativeGen/RegAlloc/Linear/Base.hs
+++ b/
compiler/nativeGen/RegAlloc/Linear/Base.hs
@@
-20,9
+20,8
@@
where
import RegAlloc.Linear.FreeRegs
import RegAlloc.Linear.StackMap
import RegAlloc.Linear.FreeRegs
import RegAlloc.Linear.StackMap
-
-import RegLiveness
-import MachRegs
+import RegAlloc.Liveness
+import Reg
import Outputable
import Unique
import Outputable
import Unique
@@
-52,14
+51,14
@@
type BlockAssignment
--
data Loc
-- | vreg is in a register
--
data Loc
-- | vreg is in a register
- = InReg {-# UNPACK #-} !RegNo
+ = InReg {-# UNPACK #-} !RealReg
-- | vreg is held in a stack slot
-- | vreg is held in a stack slot
- | InMem {-# UNPACK #-} !StackSlot
+ | InMem {-# UNPACK #-} !StackSlot
-- | vreg is held in both a register and a stack slot
-- | vreg is held in both a register and a stack slot
- | InBoth {-# UNPACK #-} !RegNo
+ | InBoth {-# UNPACK #-} !RealReg
{-# UNPACK #-} !StackSlot
deriving (Eq, Show, Ord)
{-# UNPACK #-} !StackSlot
deriving (Eq, Show, Ord)
@@
-68,7
+67,7
@@
instance Outputable Loc where
-- | Get the reg numbers stored in this Loc.
-- | Get the reg numbers stored in this Loc.
-regsOfLoc :: Loc -> [RegNo]
+regsOfLoc :: Loc -> [RealReg]
regsOfLoc (InReg r) = [r]
regsOfLoc (InBoth r _) = [r]
regsOfLoc (InMem _) = []
regsOfLoc (InReg r) = [r]
regsOfLoc (InBoth r _) = [r]
regsOfLoc (InMem _) = []
@@
-105,9
+104,10
@@
data RegAllocStats
data RA_State
= RA_State
data RA_State
= RA_State
+ {
-- | the current mapping from basic blocks to
-- the register assignments at the beginning of that block.
-- | the current mapping from basic blocks to
-- the register assignments at the beginning of that block.
- { ra_blockassig :: BlockAssignment
+ ra_blockassig :: BlockAssignment
-- | free machine registers
, ra_freeregs :: {-#UNPACK#-}!FreeRegs
-- | free machine registers
, ra_freeregs :: {-#UNPACK#-}!FreeRegs