futhark-0.25.32: An optimising compiler for a functional, array-oriented language.

Safe Haskell | Safe-Inferred
Language | GHC2021

Futhark.IR.SeqMem

Contents

- Simplification
- Module re-exports

Synopsis

- data SeqMem
- simplifyProg :: Prog SeqMem -> PassM (Prog SeqMem)
- simpleSeqMem :: SimpleOps SeqMem
- module Futhark.IR.Mem

# Documentation

data SeqMem Source #

#### Instances

Instances details

Analyse SeqMem Source # |
Instance details Defined in Futhark.Analysis.AccessPattern Methods analyseOp :: Op SeqMem -> Context SeqMem -> [VName] -> (Context SeqMem, IndexTable SeqMem)
BuilderOps SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem Methods mkExpDecB :: (MonadBuilder m, Rep m ~ SeqMem) => Pat (LetDec SeqMem) -> Exp SeqMem -> m (ExpDec SeqMem) Source # mkBodyB :: (MonadBuilder m, Rep m ~ SeqMem) => Stms SeqMem -> Result -> m (Body SeqMem) Source # mkLetNamesB :: (MonadBuilder m, Rep m ~ SeqMem) => [VName] -> Exp SeqMem -> m (Stm SeqMem) Source #
PrettyRep SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem Methods ppExpDec :: ExpDec SeqMem -> Exp SeqMem -> Maybe (Doc a) Source #
ASTRep SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem Methods expTypesFromPat :: (HasScope SeqMem m, Monad m) => Pat (LetDec SeqMem) -> m [BranchType SeqMem] Source #
RepTypes SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem Associated Types type LetDec SeqMem Source # type ExpDec SeqMem Source # type BodyDec SeqMem Source # type FParamInfo SeqMem Source # type LParamInfo SeqMem Source # type RetType SeqMem Source # type BranchType SeqMem Source # type OpC SeqMem :: Type -> Type Source #
TraverseOpStms SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem Methods traverseOpStms :: Monad m => OpStmsTraverser m (Op SeqMem) SeqMem Source #
Checkable SeqMem Source # |

Instance details

Defined in Futhark.IR.SeqMem

Methods

checkExpDec :: ExpDec SeqMem -> TypeM SeqMem () Source #

checkBodyDec :: BodyDec SeqMem -> TypeM SeqMem () Source #

checkFParamDec :: VName -> FParamInfo SeqMem -> TypeM SeqMem () Source #

checkLParamDec :: VName -> LParamInfo SeqMem -> TypeM SeqMem () Source #

checkLetBoundDec :: VName -> LetDec SeqMem -> TypeM SeqMem () Source #

checkRetType :: [RetType SeqMem] -> TypeM SeqMem () Source #

matchPat :: Pat (LetDec (Aliases SeqMem)) -> Exp (Aliases SeqMem) -> TypeM SeqMem () Source #

primFParam :: VName -> PrimType -> TypeM SeqMem (FParam (Aliases SeqMem)) Source #

matchReturnType :: [RetType SeqMem] -> Result -> TypeM SeqMem () Source #

matchBranchType :: [BranchType SeqMem] -> Body (Aliases SeqMem) -> TypeM SeqMem () Source #

matchLoopResult :: [FParam (Aliases SeqMem)] -> Result -> TypeM SeqMem () Source #

checkOp :: Op (Aliases SeqMem) -> TypeM SeqMem () Source #

HasMemBlock (Aliases SeqMem) Source # |
Instance details Defined in Futhark.Optimise.ArrayShortCircuiting.DataStructs Methods getScopeMemInfo :: VName -> Scope (Aliases SeqMem) -> Maybe ArrayMemBound Source #
BuilderOps (Wise SeqMem) Source # |

Instance details

Defined in Futhark.IR.SeqMem

Methods

mkExpDecB :: (MonadBuilder m, Rep m ~ Wise SeqMem) => Pat (LetDec (Wise SeqMem)) -> Exp (Wise SeqMem) -> m (ExpDec (Wise SeqMem)) Source #

mkBodyB :: (MonadBuilder m, Rep m ~ Wise SeqMem) => Stms (Wise SeqMem) -> Result -> m (Body (Wise SeqMem)) Source #

mkLetNamesB :: (MonadBuilder m, Rep m ~ Wise SeqMem) => [VName] -> Exp (Wise SeqMem) -> m (Stm (Wise SeqMem)) Source #

TraverseOpStms (Wise SeqMem) Source # |
Instance details Defined in Futhark.IR.SeqMem Methods traverseOpStms :: Monad m => OpStmsTraverser m (Op (Wise SeqMem)) (Wise SeqMem) Source #
type BodyDec SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type BodyDec SeqMem = ()
type BranchType SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type BranchType SeqMem = BranchTypeMem
type ExpDec SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type ExpDec SeqMem = ()
type FParamInfo SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type FParamInfo SeqMem = FParamMem
type LParamInfo SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type LParamInfo SeqMem = LParamMem
type LetDec SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type LetDec SeqMem = LetDecMem
type OpC SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type OpC SeqMem = MemOp (NoOp :: Type -> Type)
type RetType SeqMem Source # |
Instance details Defined in Futhark.IR.SeqMem type RetType SeqMem = RetTypeMem

# Simplification

simplifyProg :: Prog SeqMem -> PassM (Prog SeqMem) Source #

simpleSeqMem :: SimpleOps SeqMem Source #

# Module re-exports

module Futhark.IR.Mem