hoopl-3.7.3.3: A library to support dataflow analysis and optimization
Compiler.Hoopl.MkGraph
type AGraph n e x = FuelMonad (Graph n e x)Source
(<*>) :: AGraph n e O -> AGraph n O x -> AGraph n e xSource
emptyAGraph :: AGraph n O OSource
withFreshLabels :: Labels l => (l -> AGraph n e x) -> AGraph n e xSource
mkFirst :: n C O -> AGraph n C OSource
mkMiddle :: n O O -> AGraph n O OSource
mkMiddles :: [n O O] -> AGraph n O OSource
mkLast :: n O C -> AGraph n O CSource
mkEntry :: Block n O C -> AGraph n O CSource
mkBranch :: Node n => Label -> AGraph n O CSource
mkLabel :: Node n => Label -> AGraph n C OSource
mkWhileDo :: Node n => (Label -> Label -> AGraph n O C) -> AGraph n O O -> AGraph n O OSource
addEntrySeq :: AGraph n O C -> AGraph n C x -> AGraph n O xSource
addExitSeq :: AGraph n e C -> AGraph n C O -> AGraph n e OSource
catAGraphs :: [AGraph n O O] -> AGraph n O OSource
class IfThenElseable x whereSource
Methods
mkIfThenElse :: Node n => (Label -> Label -> AGraph n O C) -> AGraph n O x -> AGraph n O x -> AGraph n O xSource
Instances
class Edges n => Node n whereSource
mkBranchNode :: Label -> n O CSource
mkLabelNode :: Label -> n C OSource