- type Doms = WithBot DPath
- newtype DPath = DPath [Label]
- domPath :: Doms -> [Label]
- domEntry :: Doms
- domLattice :: DataflowLattice Doms
- extendDom :: Label -> DPath -> DPath
- data DominatorNode
- data DominatorTree = Dominates DominatorNode [DominatorTree]
- tree :: [(Label, Doms)] -> DominatorTree
- immediateDominators :: FactBase Doms -> LabelMap Label
- domPass :: (NonLocal n, Monad m) => FwdPass m n Doms

# Documentation

The fact that goes into the entry of a dominator analysis: the first node is dominated only by the entry point, which is represented by the empty list of labels.

data DominatorTree Source

This data structure is a *rose tree* in which each node may have arbitrarily many children. Each node dominates all its descendants.

tree :: [(Label, Doms)] -> DominatorTreeSource

Map from a FactBase for dominator lists into a dominator tree.