Safe Haskell | None |
---|---|
Language | Haskell2010 |
Perform copy propagation. This is done by invoking the simplifier with no rules, so hoisting and dead-code elimination may also take place.
Synopsis
- copyPropagateInProg :: SimplifiableLore lore => SimpleOps lore -> Prog lore -> PassM (Prog lore)
- copyPropagateInStms :: (MonadFreshNames m, SimplifiableLore lore) => SimpleOps lore -> Scope lore -> Stms lore -> m (SymbolTable (Wise lore), Stms lore)
- copyPropagateInFun :: (MonadFreshNames m, SimplifiableLore lore) => SimpleOps lore -> SymbolTable (Wise lore) -> FunDef lore -> m (FunDef lore)
Documentation
copyPropagateInProg :: SimplifiableLore lore => SimpleOps lore -> Prog lore -> PassM (Prog lore) Source #
Run copy propagation on an entire program.
copyPropagateInStms :: (MonadFreshNames m, SimplifiableLore lore) => SimpleOps lore -> Scope lore -> Stms lore -> m (SymbolTable (Wise lore), Stms lore) Source #
Run copy propagation on some statements.
copyPropagateInFun :: (MonadFreshNames m, SimplifiableLore lore) => SimpleOps lore -> SymbolTable (Wise lore) -> FunDef lore -> m (FunDef lore) Source #
Run copy propagation on a function.