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

Compiler.Hoopl.ZipDataflowNoRG

Synopsis

Documentation

data FwdPass n f Source

type FwdTransfer n f = forall e x. n e x -> Fact e f -> Fact x fSource

type FwdRewrite n f = forall e x. n e x -> Fact e f -> Maybe (FwdRes n f e x)Source

data FwdRes n f e x Source

Constructors

FwdRes (AGraph n e x) (FwdRewrite n f) 

data BwdPass n f Source

type BwdTransfer n f = forall e x. n e x -> Fact x f -> Fact e fSource

type BwdRewrite n f = forall e x. n e x -> Fact x f -> Maybe (BwdRes n f e x)Source

data BwdRes n f e x Source

Constructors

BwdRes (AGraph n e x) (BwdRewrite n f) 

analyzeAndRewriteFwd :: forall n f. Edges n => FwdPass n f -> ZBody n -> FactBase f -> FuelMonad (ZBody n, FactBase f)Source

analyzeAndRewriteBwd :: forall n f. Edges n => BwdPass n f -> ZBody n -> FactBase f -> FuelMonad (ZBody n, FactBase f)Source

analyzeAndRewriteFwd' :: forall n f e x. Edges n => FwdPass n f -> ZGraph n e x -> Fact e f -> FuelMonad (ZGraph n e x, FactBase f, MaybeO x f)Source

if the graph being analyzed is open at the entry, there must be no other entry point, or all goes horribly wrong...

analyzeAndRewriteBwd' :: forall n f e x. Edges n => BwdPass n f -> ZGraph n e x -> Fact x f -> FuelMonad (ZGraph n e x, FactBase f, MaybeO e f)Source

if the graph being analyzed is open at the exit, I don't quite understand the implications of possible other exits