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

Safe Haskell | Safe-Inferred
Language | GHC2021

Futhark.IR.GPUMem

Contents

- Simplification
- Module re-exports

Synopsis

- data GPUMem
- simplifyProg :: Prog GPUMem -> PassM (Prog GPUMem)
- simplifyStms :: (HasScope GPUMem m, MonadFreshNames m) => Stms GPUMem -> m (Stms GPUMem)
- simpleGPUMem :: SimpleOps GPUMem
- module Futhark.IR.Mem
- module Futhark.IR.GPU.Op

# Documentation

data GPUMem Source #

#### Instances

Instances details

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

Instance details

Defined in Futhark.IR.GPUMem

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

Instance details

Defined in Futhark.IR.GPUMem

Methods

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

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

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

TraverseOpStms (Wise GPUMem) Source # |
Instance details Defined in Futhark.IR.GPUMem Methods traverseOpStms :: Monad m => OpStmsTraverser m (Op (Wise GPUMem)) (Wise GPUMem) Source #
TopDownHelper (HostOp (NoOp :: Type -> Type) (Aliases GPUMem)) Source # |
Instance details Defined in Futhark.Optimise.ArrayShortCircuiting.TopdownAnalysis Methods innerNonNegatives :: [VName] -> HostOp NoOp (Aliases GPUMem) -> Names innerKnownLessThan :: HostOp NoOp (Aliases GPUMem) -> [(VName, PrimExp VName)] scopeHelper :: HostOp NoOp (Aliases GPUMem) -> Scope rep
type BodyDec GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type BodyDec GPUMem = ()
type BranchType GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type BranchType GPUMem = BranchTypeMem
type ExpDec GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type ExpDec GPUMem = ()
type FParamInfo GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type FParamInfo GPUMem = FParamMem
type LParamInfo GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type LParamInfo GPUMem = LParamMem
type LetDec GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type LetDec GPUMem = LetDecMem
type OpC GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type OpC GPUMem = MemOp (HostOp (NoOp :: Type -> Type))
type RetType GPUMem Source # |
Instance details Defined in Futhark.IR.GPUMem type RetType GPUMem = RetTypeMem

# Simplification

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

simplifyStms :: (HasScope GPUMem m, MonadFreshNames m) => Stms GPUMem -> m (Stms GPUMem) Source #

simpleGPUMem :: SimpleOps GPUMem Source #

# Module re-exports

module Futhark.IR.Mem

module Futhark.IR.GPU.Op