/Haskell 7


Safe Haskell Safe
Language Haskell2010

type Doms = WithBot DPath Source

List of labels, extended with a standard bottom element

newtype DPath Source


DPath [Label]

represents part of the domination relation: each label in a list is dominated by all its successors. This is a newtype only so we can give it a fancy Show instance.


domPath :: Doms -> [Label] Source

domEntry :: Doms Source

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.

domLattice :: DataflowLattice Doms Source

extendDom :: Label -> DPath -> DPath Source

data DominatorNode Source


Labelled Label


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)] -> DominatorTree Source

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

immediateDominators :: FactBase Doms -> LabelMap Label Source

Takes FactBase from dominator analysis and returns a map from each label to its immediate dominator, if any

domPass :: (NonLocal n, Monad m) => FwdPass m n Doms Source

Dominator pass

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).