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

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 SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

HasSOAC (Wise GPU) Source # 
Instance details

Defined in Futhark.IR.GPU.Simplify

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 #

data SOACS Source #

The rep for the basic representation.

Instances

Instances details
RepTypes SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

PrettyRep SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

ASTRep SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

Buildable SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

BuilderOps SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

Checkable SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

CheckableOp SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

LocalScope SOACS InternaliseM Source # 
Instance details

Defined in Futhark.Internalise.Monad

HasScope 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 #

TraverseOpStms (Wise SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

BuilderOps (Wise SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

HasSOAC (Wise SOACS) Source # 
Instance details

Defined in Futhark.IR.SOACS.Simplify

type LetDec SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type ExpDec SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

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

Defined in Futhark.IR.SOACS

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

Defined in Futhark.IR.SOACS

type LParamInfo SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type RetType SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type BranchType SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

type Op SOACS Source # 
Instance details

Defined in Futhark.IR.SOACS

Orphan instances