| Copyright | (c) Edward Kmett and Dan Doel 2014 |
|---|---|
| License | BSD3 |
| Maintainer | Dan Doel <dan.doel@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Ermine.Core.Optimizer
Description
- optimize :: Core Convention c -> Core Convention c
- rewriteCore :: forall m c cc. (Applicative m, MonadWriter Any m) => (forall d. Core cc d -> m (Core cc d)) -> Core cc c -> m (Core cc c)
- rewriteCoreDown :: forall m c cc. (Applicative m, MonadWriter Any m) => (forall d. Core cc d -> m (Core cc d)) -> Core cc c -> m (Core cc c)
Documentation
optimize :: Core Convention c -> Core Convention c Source
Optimize core expressions by alternating between the different optimization passes several times.
rewriteCore :: forall m c cc. (Applicative m, MonadWriter Any m) => (forall d. Core cc d -> m (Core cc d)) -> Core cc c -> m (Core cc c) Source
rewriteCoreDown :: forall m c cc. (Applicative m, MonadWriter Any m) => (forall d. Core cc d -> m (Core cc d)) -> Core cc c -> m (Core cc c) Source