- 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