StackColor

ghc-7.0.4: The GHC API

StackColor

Synopsis

- 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 -> 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

Add some conflict edges to the graph. Conflicts between virtual and real regs are recorded as exclusions.

slotClass :: LocalReg -> SlotClass

mkSizeOf :: ClassCount -> SlotClass -> Int

number of placements available is from class and all larger classes