hoopl-3.7.4.0: A library to support dataflow analysis and optimization

Compiler.Hoopl.Graph

Documentation

data O Source

Instances

data C Source

Instances

data Block n e x whereSource

Constructors

BUnit :: n e x -> Block n e x 
BCat :: Block n e O -> Block n O x -> Block n e x 

Instances

Edges n => Edges (Block n) 

data Body n whereSource

Constructors

BodyEmpty :: Body n 
BodyUnit :: Block n C C -> Body n 
BodyCat :: Body n -> Body n -> Body n 

data Graph n e x whereSource

Constructors

GNil :: Graph n O O 
GUnit :: Block n O O -> Graph n O O 
GMany :: MaybeO e (Block n O C) -> Body n -> MaybeO x (Block n C O) -> Graph n e x 

data MaybeO ex t whereSource

Constructors

JustO :: t -> MaybeO O t 
NothingO :: MaybeO C t 

class Edges thing whereSource

Methods

entryLabel :: thing C x -> LabelSource

successors :: thing e C -> [Label]Source

Instances

Edges n => Edges (Block n) 

addBlock :: Block n C C -> Body n -> Body nSource

bodyList :: Edges n => Body n -> [(Label, Block n C C)]Source