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 (Stms SOACS)
- simplifyConsts :: MonadFreshNames m => Stms SOACS -> m (Stms SOACS)
- simpleSOACS :: SimpleOps SOACS
- simplifySOAC :: SimplifiableRep rep => SimplifyOp rep (SOAC (Wise rep))
- soacRules :: RuleBook (Wise SOACS)
- class HasSOAC rep where
- simplifyKnownIterationSOAC :: (Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep
- removeReplicateMapping :: (Aliased rep, Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep
- liftIdentityMapping :: forall rep. (Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep
- simplifyMapIota :: forall rep. (Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep
- 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 (Stms SOACS) Source #
simplifyConsts :: MonadFreshNames m => Stms SOACS -> m (Stms SOACS) Source #
simplifySOAC :: SimplifiableRep rep => SimplifyOp rep (SOAC (Wise rep)) Source #
class HasSOAC rep where Source #
Does this rep contain SOAC
s in its Op
s? A rep must be an
instance of this class for the simplification rules to work.
simplifyKnownIterationSOAC :: (Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep Source #
removeReplicateMapping :: (Aliased rep, Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep Source #
Remove all arguments to the map that are simply replicates. These can be turned into free variables instead.
liftIdentityMapping :: forall rep. (Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep Source #
simplifyMapIota :: forall rep. (Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep Source #
The rep for the basic representation.
Instances
Orphan instances
TraverseOpStms (Wise SOACS) Source # | |
traverseOpStms :: Monad m => OpStmsTraverser m (Op (Wise SOACS)) (Wise SOACS) Source # | |
BuilderOps (Wise SOACS) Source # | |
mkExpDecB :: (MonadBuilder m, Rep m ~ Wise SOACS) => Pat (Wise SOACS) -> Exp (Wise SOACS) -> m (ExpDec (Wise SOACS)) Source # mkBodyB :: (MonadBuilder m, Rep m ~ Wise SOACS) => Stms (Wise SOACS) -> Result -> m (Body (Wise SOACS)) Source # mkLetNamesB :: (MonadBuilder m, Rep m ~ Wise SOACS) => [VName] -> Exp (Wise SOACS) -> m (Stm (Wise SOACS)) Source # |