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

Safe Haskell | None
Language | GHC2021

Futhark.IR.Seq

Contents

- Simplification
- Module re-exports

Description

A sequential representation.

Synopsis

- data Seq
- simplifyProg :: Prog Seq -> PassM (Prog Seq)
- module Futhark.IR.Prop
- module Futhark.IR.Traversals
- module Futhark.IR.Pretty
- module Futhark.IR.Syntax

# Documentation

data Seq Source #

The phantom type for the Seq representation.

#### Instances

Instances details

Analyse Seq Source # |
Instance details Defined in Futhark.Analysis.AccessPattern Methods analyseOp :: Op Seq -> Context Seq -> [VName] -> (Context Seq, IndexTable Seq)
BuilderOps Seq Source # |
Instance details Defined in Futhark.IR.Seq Methods mkExpDecB :: (MonadBuilder m, Rep m ~ Seq) => Pat (LetDec Seq) -> Exp Seq -> m (ExpDec Seq) Source # mkBodyB :: (MonadBuilder m, Rep m ~ Seq) => Stms Seq -> Result -> m (Body Seq) Source # mkLetNamesB :: (MonadBuilder m, Rep m ~ Seq) => [VName] -> Exp Seq -> m (Stm Seq) Source #
Buildable Seq Source # |
Instance details Defined in Futhark.IR.Seq Methods mkExpPat :: [Ident] -> Exp Seq -> Pat (LetDec Seq) Source # mkExpDec :: Pat (LetDec Seq) -> Exp Seq -> ExpDec Seq Source # mkBody :: Stms Seq -> Result -> Body Seq Source # mkLetNames :: (MonadFreshNames m, HasScope Seq m) => [VName] -> Exp Seq -> m (Stm Seq) Source #
PrettyRep Seq Source # |
Instance details Defined in Futhark.IR.Seq Methods ppExpDec :: ExpDec Seq -> Exp Seq -> Maybe (Doc a) Source #
ASTRep Seq Source # |
Instance details Defined in Futhark.IR.Seq Methods expTypesFromPat :: (HasScope Seq m, Monad m) => Pat (LetDec Seq) -> m [BranchType Seq] Source #
RepTypes Seq Source # |

Instance details

Defined in Futhark.IR.Seq

Associated Types

type LetDec Seq |
Instance details Defined in Futhark.IR.Seq type LetDec Seq = Type
type ExpDec Seq |
Instance details Defined in Futhark.IR.Seq type ExpDec Seq = ()
type BodyDec Seq |
Instance details Defined in Futhark.IR.Seq type BodyDec Seq = ()
type FParamInfo Seq |
Instance details Defined in Futhark.IR.Seq type FParamInfo Seq = DeclType
type LParamInfo Seq |
Instance details Defined in Futhark.IR.Seq type LParamInfo Seq = Type
type RetType Seq |
Instance details Defined in Futhark.IR.Seq type RetType Seq = DeclExtType
type BranchType Seq |
Instance details Defined in Futhark.IR.Seq type BranchType Seq = ExtType
type OpC Seq |
Instance details Defined in Futhark.IR.Seq type OpC Seq = NoOp :: Type -> Type

TraverseOpStms Seq Source # |
Instance details Defined in Futhark.IR.Seq Methods traverseOpStms :: Monad m => OpStmsTraverser m (Op Seq) Seq Source #
Checkable Seq Source # |

Instance details

Defined in Futhark.IR.Seq

Methods

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

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

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

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

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

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

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

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

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

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

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

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

BuilderOps (Wise Seq) Source # |
Instance details Defined in Futhark.IR.Seq Methods mkExpDecB :: (MonadBuilder m, Rep m ~ Wise Seq) => Pat (LetDec (Wise Seq)) -> Exp (Wise Seq) -> m (ExpDec (Wise Seq)) Source # mkBodyB :: (MonadBuilder m, Rep m ~ Wise Seq) => Stms (Wise Seq) -> Result -> m (Body (Wise Seq)) Source # mkLetNamesB :: (MonadBuilder m, Rep m ~ Wise Seq) => [VName] -> Exp (Wise Seq) -> m (Stm (Wise Seq)) Source #
TraverseOpStms (Wise Seq) Source # |
Instance details Defined in Futhark.IR.Seq Methods traverseOpStms :: Monad m => OpStmsTraverser m (Op (Wise Seq)) (Wise Seq) Source #
type BodyDec Seq Source # |
Instance details Defined in Futhark.IR.Seq type BodyDec Seq = ()
type BranchType Seq Source # |
Instance details Defined in Futhark.IR.Seq type BranchType Seq = ExtType
type ExpDec Seq Source # |
Instance details Defined in Futhark.IR.Seq type ExpDec Seq = ()
type FParamInfo Seq Source # |
Instance details Defined in Futhark.IR.Seq type FParamInfo Seq = DeclType
type LParamInfo Seq Source # |
Instance details Defined in Futhark.IR.Seq type LParamInfo Seq = Type
type LetDec Seq Source # |
Instance details Defined in Futhark.IR.Seq type LetDec Seq = Type
type OpC Seq Source # |
Instance details Defined in Futhark.IR.Seq type OpC Seq = NoOp :: Type -> Type
type RetType Seq Source # |
Instance details Defined in Futhark.IR.Seq type RetType Seq = DeclExtType

# Simplification

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

Simplify a sequential program.

# Module re-exports

module Futhark.IR.Prop

module Futhark.IR.Traversals

module Futhark.IR.Pretty

module Futhark.IR.Syntax