data RA_State
= RA_State
+ {
-- | 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
-> BlockId -- ^ id of the current block, for debugging.
-> [LiveInstr] -- ^ liveness annotated instructions in this block.
- -> RegM ( [Instr] -- ^ instructions after register allocation
- , [NatBasicBlock]) -- ^ fresh blocks of fixup code.
+ -> RegM ( [Instr] -- instructions after register allocation
+ , [NatBasicBlock]) -- fresh blocks of fixup code.
linearRA _ accInstr accFixup _ []
data StackMap
= StackMap
+ { -- | The slots that are still available to be allocated.
+ stackMapFreeSlots :: [StackSlot]
- -- | The slots that are still available to be allocated.
- { stackMapFreeSlots :: [StackSlot]
-
- -- | Assignment of vregs to stack slots.
+ -- | Assignment of vregs to stack slots.
, stackMapAssignment :: UniqFM StackSlot }