Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Definition of the lore used by the simplification engine.
Synopsis
- data Wise lore
- newtype VarWisdom = VarWisdom {}
- data ExpWisdom
- removeStmWisdom :: CanBeWise (Op lore) => Stm (Wise lore) -> Stm lore
- removeLambdaWisdom :: CanBeWise (Op lore) => Lambda (Wise lore) -> Lambda lore
- removeFunDefWisdom :: CanBeWise (Op lore) => FunDef (Wise lore) -> FunDef lore
- removeExpWisdom :: CanBeWise (Op lore) => Exp (Wise lore) -> Exp lore
- removePatternWisdom :: PatternT (VarWisdom, a) -> PatternT a
- removeBodyWisdom :: CanBeWise (Op lore) => Body (Wise lore) -> Body lore
- removeScopeWisdom :: Scope (Wise lore) -> Scope lore
- addScopeWisdom :: Scope lore -> Scope (Wise lore)
- addWisdomToPattern :: (ASTLore lore, CanBeWise (Op lore)) => Pattern lore -> Exp (Wise lore) -> Pattern (Wise lore)
- mkWiseBody :: (ASTLore lore, CanBeWise (Op lore)) => BodyDec lore -> Stms (Wise lore) -> Result -> Body (Wise lore)
- mkWiseLetStm :: (ASTLore lore, CanBeWise (Op lore)) => Pattern lore -> StmAux (ExpDec lore) -> Exp (Wise lore) -> Stm (Wise lore)
- mkWiseExpDec :: (ASTLore lore, CanBeWise (Op lore)) => Pattern (Wise lore) -> ExpDec lore -> Exp (Wise lore) -> ExpDec (Wise lore)
- class (AliasedOp (OpWithWisdom op), IsOp (OpWithWisdom op)) => CanBeWise op where
- type OpWithWisdom op :: Type
- removeOpWisdom :: OpWithWisdom op -> op
Documentation
Instances
The wisdom of the let-bound variable.
Instances
Eq VarWisdom Source # | |
Ord VarWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore | |
Show VarWisdom Source # | |
Generic VarWisdom Source # | |
SexpIso VarWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore | |
FreeIn VarWisdom Source # | |
Substitute VarWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore | |
Rename VarWisdom Source # | |
PrettyAnnot (PatElemT dec) => PrettyAnnot (PatElemT (VarWisdom, dec)) Source # | |
AliasesOf (VarWisdom, dec) Source # | |
type Rep VarWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore type Rep VarWisdom = D1 ('MetaData "VarWisdom" "Futhark.Optimise.Simplify.Lore" "futhark-0.18.6-inplace" 'True) (C1 ('MetaCons "VarWisdom" 'PrefixI 'True) (S1 ('MetaSel ('Just "varWisdomAliases") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 VarAliases))) |
Wisdom about an expression.
Instances
Eq ExpWisdom Source # | |
Ord ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore | |
Show ExpWisdom Source # | |
Generic ExpWisdom Source # | |
SexpIso ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore | |
FreeDec ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore | |
FreeIn ExpWisdom Source # | |
Substitute ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore | |
Rename ExpWisdom Source # | |
type Rep ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Lore type Rep ExpWisdom = D1 ('MetaData "ExpWisdom" "Futhark.Optimise.Simplify.Lore" "futhark-0.18.6-inplace" 'False) (C1 ('MetaCons "ExpWisdom" 'PrefixI 'True) (S1 ('MetaSel ('Just "_expWisdomConsumed") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConsumedInExp) :*: S1 ('MetaSel ('Just "expWisdomFree") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AliasDec))) |
addWisdomToPattern :: (ASTLore lore, CanBeWise (Op lore)) => Pattern lore -> Exp (Wise lore) -> Pattern (Wise lore) Source #
mkWiseBody :: (ASTLore lore, CanBeWise (Op lore)) => BodyDec lore -> Stms (Wise lore) -> Result -> Body (Wise lore) Source #
mkWiseLetStm :: (ASTLore lore, CanBeWise (Op lore)) => Pattern lore -> StmAux (ExpDec lore) -> Exp (Wise lore) -> Stm (Wise lore) Source #
mkWiseExpDec :: (ASTLore lore, CanBeWise (Op lore)) => Pattern (Wise lore) -> ExpDec lore -> Exp (Wise lore) -> ExpDec (Wise lore) Source #
class (AliasedOp (OpWithWisdom op), IsOp (OpWithWisdom op)) => CanBeWise op where Source #
type OpWithWisdom op :: Type Source #
removeOpWisdom :: OpWithWisdom op -> op Source #