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 LocalReg Source
type CmmGlobalLive = CmmLive GlobalReg Source
cmmLocalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness LocalReg Source
Calculated liveness info for a CmmGraph
cmmGlobalLiveness :: DynFlags -> CmmGraph -> BlockEntryLiveness GlobalReg Source
liveLattice :: Ord r => DataflowLattice (CmmLive r) Source
The dataflow lattice
noLiveOnEntry :: BlockId -> CmmLive LocalReg -> a -> a Source
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 r Source