futhark-0.25.30: An optimising compiler for a functional, array-oriented language.
Safe HaskellNone
LanguageGHC2021

Futhark.IR.SOACS.Simplify

Synopsis

Documentation

class HasSOAC rep where Source #

Does this rep contain SOACs in its Ops? A rep must be an instance of this class for the simplification rules to work.

Methods

asSOAC :: Op rep -> Maybe (SOAC rep) Source #

soacOp :: SOAC rep -> Op rep Source #

Instances

Instances details
HasSOAC (Wise GPU) Source # 
Instance details

Defined in Futhark.IR.GPU.Simplify

HasSOAC (Wise SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

removeReplicateMapping :: (Aliased 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.

removeUnusedSOACInput :: (Aliased rep, Buildable rep, BuilderOps rep, HasSOAC rep) => TopDownRuleOp rep Source #

Remove inputs that are not used inside the SOAC.

data SOACS Source #

The rep for the basic representation.

Instances

Instances details
Analyse SOACS Source # 
Instance details

Defined in Futhark.Analysis.AccessPattern

BuilderOps SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

Buildable SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

PrettyRep SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

Methods

ppExpDec :: ExpDec SOACS -> Exp SOACS -> Maybe (Doc a) Source #

ASTRep SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

RepTypes SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

Associated Types

type LetDec SOACS 
Instance details

Defined in Futhark.IR.SOACS

type ExpDec SOACS 
Instance details

Defined in Futhark.IR.SOACS

type ExpDec SOACS = ()
type BodyDec SOACS 
Instance details

Defined in Futhark.IR.SOACS

type BodyDec SOACS = ()
type FParamInfo SOACS 
Instance details

Defined in Futhark.IR.SOACS

type LParamInfo SOACS 
Instance details

Defined in Futhark.IR.SOACS

type RetType SOACS 
Instance details

Defined in Futhark.IR.SOACS

type BranchType SOACS 
Instance details

Defined in Futhark.IR.SOACS

type OpC SOACS 
Instance details

Defined in Futhark.IR.SOACS

type OpC SOACS = SOAC
Checkable SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

HasScope SOACS ADM Source # 
Instance details

Defined in Futhark.AD.Rev.Monad

HasScope SOACS InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

LocalScope SOACS ADM Source # 
Instance details

Defined in Futhark.AD.Rev.Monad

Methods

localScope :: Scope SOACS -> ADM a -> ADM a Source #

LocalScope SOACS InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

HasScope SOACS (ImpM rep r op) Source # 
Instance details

Defined in Futhark.CodeGen.ImpGen

Methods

lookupType :: VName -> ImpM rep r op Type Source #

lookupInfo :: VName -> ImpM rep r op (NameInfo SOACS) Source #

askScope :: ImpM rep r op (Scope SOACS) Source #

asksScope :: (Scope SOACS -> a) -> ImpM rep r op a Source #

BuilderOps (Wise SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

HasSOAC (Wise SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

TraverseOpStms (Wise SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

type BodyDec SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type BodyDec SOACS = ()
type BranchType SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type ExpDec SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type ExpDec SOACS = ()
type FParamInfo SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type LParamInfo SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type LetDec SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type OpC SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type OpC SOACS = SOAC
type RetType SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

Orphan instances