Safe Haskell | None |
---|---|
Language | Haskell98 |
- 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
- removeDeadAssignments :: DynFlags -> CmmGraph -> UniqSM (CmmGraph, BlockEnv CmmLocalLive)
Documentation
type CmmLocalLive = CmmLive LocalRegSource
type CmmGlobalLive = CmmLive GlobalRegSource
cmmLocalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness LocalRegSource
Calculated liveness info for a CmmGraph
cmmGlobalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness GlobalRegSource
liveLattice :: Ord r => DataflowLattice (CmmLive r)Source
The dataflow lattice
noLiveOnEntry :: BlockId -> CmmLive LocalReg -> a -> aSource
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)Source
The transfer function
gen_kill :: (DefinerOfRegs r a, UserOfRegs r a) => DynFlags -> a -> CmmLive r -> CmmLive rSource