- fold_edge_facts_b :: LastNode l => (DualLive -> a -> a) -> BackwardTransfers m l DualLive -> LGraph m l -> (BlockId -> DualLive) -> a -> a
- foldConflicts :: (RegSet -> a -> a) -> a -> LGraph Middle Last -> FuelMonad a
- type IGraph = Graph LocalReg SlotClass StackPlacement
- type ClassCount = [(SlotClass, Int)]
- buildIGraphAndCounts :: LGraph Middle Last -> FuelMonad (IGraph, ClassCount)
- graphAddConflictSet :: RegSet -> IGraph -> IGraph
- slotClass :: LocalReg -> SlotClass
- mkSizeOf :: ClassCount -> SlotClass -> Int
Documentation
fold_edge_facts_b :: LastNode l => (DualLive -> a -> a) -> BackwardTransfers m l DualLive -> LGraph m l -> (BlockId -> DualLive) -> a -> aSource
type ClassCount = [(SlotClass, Int)]Source
graphAddConflictSet :: RegSet -> IGraph -> IGraphSource
Add some conflict edges to the graph. Conflicts between virtual and real regs are recorded as exclusions.
mkSizeOf :: ClassCount -> SlotClass -> IntSource
number of placements available is from class and all larger classes