Safe Haskell | None |
---|---|
Language | Haskell2010 |
CmmLive
- type CmmLocalLive = CmmLive LocalReg
- type CmmGlobalLive = CmmLive GlobalReg
- cmmLocalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness LocalReg
- cmmGlobalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness GlobalReg
- liveLattice :: Ord r => DataflowLattice (CmmLive r)
- noLiveOnEntry :: BlockId -> CmmLive LocalReg -> a -> a
- xferLive :: forall r. (UserOfRegs r (CmmNode O O), DefinerOfRegs r (CmmNode O O), UserOfRegs r (CmmNode O C), DefinerOfRegs r (CmmNode O C)) => DynFlags -> BwdTransfer CmmNode (CmmLive r)
- gen :: UserOfRegs r a => DynFlags -> a -> RegSet r -> RegSet r
- kill :: DefinerOfRegs r a => DynFlags -> a -> RegSet r -> RegSet r
- gen_kill :: (DefinerOfRegs r a, UserOfRegs r a) => DynFlags -> a -> CmmLive r -> CmmLive r
Documentation
type CmmLocalLive = CmmLive LocalReg
type CmmGlobalLive = CmmLive GlobalReg
cmmLocalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness LocalReg
Calculated liveness info for a CmmGraph
cmmGlobalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness GlobalReg
liveLattice :: Ord r => DataflowLattice (CmmLive r)
The dataflow lattice
noLiveOnEntry :: BlockId -> CmmLive LocalReg -> a -> a
On entry to the procedure, there had better not be any LocalReg's live-in.
xferLive :: forall r. (UserOfRegs r (CmmNode O O), DefinerOfRegs r (CmmNode O O), UserOfRegs r (CmmNode O C), DefinerOfRegs r (CmmNode O C)) => DynFlags -> BwdTransfer CmmNode (CmmLive r)
The transfer function
gen :: UserOfRegs r a => DynFlags -> a -> RegSet r -> RegSet r
kill :: DefinerOfRegs r a => DynFlags -> a -> RegSet r -> RegSet r
gen_kill :: (DefinerOfRegs r a, UserOfRegs r a) => DynFlags -> a -> CmmLive r -> CmmLive r