ghc-6.12.1: The GHC APISource codeContentsIndex
data DataflowLattice a Source
fact_name :: String
fact_bot :: a
fact_add_to :: a -> a -> TxRes acompute join of two args; something changed iff join is greater than 2nd arg
fact_do_logging :: Bool
class DataflowAnalysis m whereSource
=> m f ()
factsStatus :: m f ChangeFlagSource
=> m f aDo a new analysis and then throw away all the related state.
-> m f a
getFact :: BlockId -> m f fSource
setFact :: Outputable f => BlockId -> f -> m f ()Source
getExitFact :: m f fSource
setExitFact :: Outputable f => f -> m f ()Source
:: Outputable f
=> BlockId
-> fassert fact already at this val
-> m f ()
botFact :: m f fSource
forgetFact :: BlockId -> m f ()Source
addLastOutFact :: (BlockId, f) -> m f ()Source
It might be surprising these next two are needed in a pure analysis, but for some problems we do a shallow rewriting in which a rewritten graph is not itself considered for further rewriting but merely undergoes an analysis. In this case the results of a forward analysis might produce new facts that go on BlockId's that reside outside the graph being analyzed. Thus these lastOutFacts need to be available even in a pure analysis.
bareLastOutFacts :: m f [(BlockId, f)]Source
forgetLastOutFacts :: m f ()Source
getAllFacts :: m f (BlockEnv f)Source
setAllFacts :: BlockEnv f -> m f ()Source
factsEnv :: Monad (m f) => m f (BlockId -> f)Source
show/hide Instances
Monad m => DataflowAnalysis (DFM' m)
type DFM fact a = DFM' FuelMonad fact aSource
runDFM :: Monad m => DataflowLattice f -> DFM' m f a -> m aSource
liftToDFM :: FuelMonad x -> DFM f xSource
markGraphRewritten :: Monad m => DFM' m f ()Source
graphWasRewritten :: DFM f ChangeFlagSource
module OptimizationFuel
Produced by Haddock version 2.6.0