Copyright | (C) 2012-2016 University of Twente 2017 Google Inc. |
---|---|
License | BSD2 (see the file LICENSE) |
Maintainer | Christiaan Baaij <christiaan.baaij@gmail.com> |
Safe Haskell | None |
Language | Haskell2010 |
Types used in Normalize modules
Synopsis
- data NormalizeState = NormalizeState {
- _normalized :: BindingMap
- _specialisationCache :: Map (Id, Int, Either Term Type) Id
- _specialisationHistory :: VarEnv Int
- _specialisationLimit :: !Int
- _inlineHistory :: VarEnv (VarEnv Int)
- _inlineLimit :: !Int
- _inlineFunctionLimit :: !Word
- _inlineConstantLimit :: !Word
- _primitives :: CompiledPrimMap
- _primitiveArgs :: Map Text (Set Int)
- _recursiveComponents :: VarEnv Bool
- _newInlineStrategy :: Bool
- _normalizeUltra :: Bool
- _inlineWFCacheLimit :: !Word
- specialisationLimit :: Lens' NormalizeState Int
- specialisationHistory :: Lens' NormalizeState (VarEnv Int)
- specialisationCache :: Lens' NormalizeState (Map (Id, Int, Either Term Type) Id)
- recursiveComponents :: Lens' NormalizeState (VarEnv Bool)
- primitives :: Lens' NormalizeState CompiledPrimMap
- primitiveArgs :: Lens' NormalizeState (Map Text (Set Int))
- normalized :: Lens' NormalizeState BindingMap
- normalizeUltra :: Lens' NormalizeState Bool
- newInlineStrategy :: Lens' NormalizeState Bool
- inlineWFCacheLimit :: Lens' NormalizeState Word
- inlineLimit :: Lens' NormalizeState Int
- inlineHistory :: Lens' NormalizeState (VarEnv (VarEnv Int))
- inlineFunctionLimit :: Lens' NormalizeState Word
- inlineConstantLimit :: Lens' NormalizeState Word
- type NormalizeMonad = State NormalizeState
- type NormalizeSession = RewriteMonad NormalizeState
- type NormRewrite = Rewrite NormalizeState
- data TermClassification = TermClassification {
- _function :: !Int
- _primitive :: !Int
- _selection :: !Int
- selection :: Lens' TermClassification Int
- primitive :: Lens' TermClassification Int
- function :: Lens' TermClassification Int
Documentation
data NormalizeState Source #
State of the NormalizeMonad
NormalizeState | |
|
primitiveArgs :: Lens' NormalizeState (Map Text (Set Int)) Source #
inlineHistory :: Lens' NormalizeState (VarEnv (VarEnv Int)) Source #
type NormalizeMonad = State NormalizeState Source #
State monad that stores specialisation and inlining information
type NormalizeSession = RewriteMonad NormalizeState Source #
RewriteSession with extra Normalisation information
type NormRewrite = Rewrite NormalizeState Source #
A Transform
action in the context of the RewriteMonad
and NormalizeMonad
data TermClassification Source #
Description of a Term
in terms of the type "components" the Term
has.
Is used as a performance/size metric.
TermClassification | |
|
Instances
Show TermClassification Source # | |
Defined in Clash.Normalize.Types showsPrec :: Int -> TermClassification -> ShowS # show :: TermClassification -> String # showList :: [TermClassification] -> ShowS # |