Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- simplifySOACS :: Prog SOACS -> PassM (Prog SOACS)
- simplifyLambda :: (HasScope SOACS m, MonadFreshNames m) => Lambda -> m Lambda
- simplifyFun :: MonadFreshNames m => SymbolTable (Wise SOACS) -> FunDef SOACS -> m (FunDef SOACS)
- simplifyStms :: (HasScope SOACS m, MonadFreshNames m) => Stms SOACS -> m (SymbolTable (Wise SOACS), Stms SOACS)
- simplifyConsts :: MonadFreshNames m => Stms SOACS -> m (SymbolTable (Wise SOACS), Stms SOACS)
- simpleSOACS :: SimpleOps SOACS
- simplifySOAC :: SimplifiableLore lore => SimplifyOp lore (SOAC lore)
- soacRules :: RuleBook (Wise SOACS)
- class HasSOAC lore where
- simplifyKnownIterationSOAC :: (Bindable lore, SimplifiableLore lore, HasSOAC (Wise lore)) => TopDownRuleOp (Wise lore)
- removeReplicateMapping :: (Bindable lore, SimplifiableLore lore, HasSOAC (Wise lore)) => TopDownRuleOp (Wise lore)
- liftIdentityMapping :: forall lore. (Bindable lore, SimplifiableLore lore, HasSOAC (Wise lore)) => TopDownRuleOp (Wise lore)
- data SOACS
Documentation
simplifyLambda :: (HasScope SOACS m, MonadFreshNames m) => Lambda -> m Lambda Source #
simplifyFun :: MonadFreshNames m => SymbolTable (Wise SOACS) -> FunDef SOACS -> m (FunDef SOACS) Source #
simplifyStms :: (HasScope SOACS m, MonadFreshNames m) => Stms SOACS -> m (SymbolTable (Wise SOACS), Stms SOACS) Source #
simplifyConsts :: MonadFreshNames m => Stms SOACS -> m (SymbolTable (Wise SOACS), Stms SOACS) Source #
simplifySOAC :: SimplifiableLore lore => SimplifyOp lore (SOAC lore) Source #
class HasSOAC lore where Source #
Does this lore contain SOAC
s in its Op
s? A lore must be an
instance of this class for the simplification rules to work.
simplifyKnownIterationSOAC :: (Bindable lore, SimplifiableLore lore, HasSOAC (Wise lore)) => TopDownRuleOp (Wise lore) Source #
removeReplicateMapping :: (Bindable lore, SimplifiableLore lore, HasSOAC (Wise lore)) => TopDownRuleOp (Wise lore) Source #
Remove all arguments to the map that are simply replicates. These can be turned into free variables instead.
liftIdentityMapping :: forall lore. (Bindable lore, SimplifiableLore lore, HasSOAC (Wise lore)) => TopDownRuleOp (Wise lore) Source #
The lore for the basic representation.
Instances
Orphan instances
BinderOps (Wise SOACS) Source # | |
mkExpDecB :: (MonadBinder m, Lore m ~ Wise SOACS) => Pattern (Wise SOACS) -> Exp (Wise SOACS) -> m (ExpDec (Wise SOACS)) Source # mkBodyB :: (MonadBinder m, Lore m ~ Wise SOACS) => Stms (Wise SOACS) -> Result -> m (Body (Wise SOACS)) Source # mkLetNamesB :: (MonadBinder m, Lore m ~ Wise SOACS) => [VName] -> Exp (Wise SOACS) -> m (Stm (Wise SOACS)) Source # |