ajhc-0.8.0.6: Haskell compiler that produce binary through C language

Safe HaskellNone

E.SSimplify

Documentation

data Occurance Source

Constructors

Unused

unused means a var is not used at the term level, but might be at the type level

Once

Used at most once not inside a lambda or as an argument

OnceInLam

used once inside a lambda

ManyBranch

used once in several branches

Many

used many or an unknown number of times

LoopBreaker

chosen as a loopbreaker, never inline

simplifyE :: SimplifyOpts -> InE -> (Stat, OutE)Source

collectOccurance' :: E -> (E, IdMap UseInfo)Source

data SimplifyOpts Source

Constructors

SimpOpts 

Fields

so_noInlining :: !Bool

this inhibits all inlining inside functions which will always be inlined

so_finalPhase :: !Bool

no rules and don't inhibit inlining

so_postLift :: !Bool

don't inline anything that was lifted out

so_boundVars :: IdMap Comb

bound variables

so_forwardVars :: IdSet

variables that we know will exist, but might not yet.

so_boundVarsCache :: IdSet
 
so_cachedScope :: Env