ghc-7.0.4: The GHC API

Vectorise.Env

Contents

Synopsis

Documentation

data Scope a b Source

Indicates what scope something (a variable) is in.

Constructors

Global a 
Local b 

Local Environments

data LocalEnv Source

The local environment.

emptyLocalEnv :: LocalEnvSource

Create an empty local environment.

Global Environments

data GlobalEnv Source

The global environment. These are things the exist at top-level.

Constructors

GlobalEnv 

Fields

global_vars :: VarEnv Var

Mapping from global variables to their vectorised versions.

global_scalars :: VarSet

Purely scalar variables. Code which mentions only these variables doesn't have to be lifted.

global_exported_vars :: VarEnv (Var, Var)

Exported variables which have a vectorised version.

global_tycons :: NameEnv TyCon

Mapping from TyCons to their vectorised versions. TyCons which do not have to be vectorised are mapped to themselves.

global_datacons :: NameEnv DataCon

Mapping from DataCons to their vectorised versions.

global_pa_funs :: NameEnv Var

Mapping from TyCons to their PA dfuns.

global_pr_funs :: NameEnv Var

Mapping from TyCons to their PR dfuns.

global_boxed_tycons :: NameEnv TyCon

Mapping from unboxed TyCons to their boxed versions.

global_inst_env :: (InstEnv, InstEnv)

External package inst-env & home-package inst-env for class instances.

global_fam_inst_env :: FamInstEnvs

External package inst-env & home-package inst-env for family instances.

global_bindings :: [(Var, CoreExpr)]

Hoisted bindings.

initGlobalEnv :: VectInfo -> (InstEnv, InstEnv) -> FamInstEnvs -> GlobalEnvSource

Create an initial global environment

extendImportedVarsEnv :: [(Var, Var)] -> GlobalEnv -> GlobalEnvSource

Extend the list of global variables in an environment.

extendScalars :: [Var] -> GlobalEnv -> GlobalEnvSource

Extend the set of scalar variables in an environment.

setFamInstEnv :: FamInstEnv -> GlobalEnv -> GlobalEnvSource

Set the list of type family instances in an environment.

extendTyConsEnv :: [(Name, TyCon)] -> GlobalEnv -> GlobalEnvSource

Extend the list of type constructors in an environment.

extendDataConsEnv :: [(Name, DataCon)] -> GlobalEnv -> GlobalEnvSource

Extend the list of data constructors in an environment.

extendPAFunsEnv :: [(Name, Var)] -> GlobalEnv -> GlobalEnvSource

Extend the list of PA functions in an environment.

setPRFunsEnv :: [(Name, Var)] -> GlobalEnv -> GlobalEnvSource

Set the list of PR functions in an environment.

setBoxedTyConsEnv :: [(Name, TyCon)] -> GlobalEnv -> GlobalEnvSource

Set the list of boxed type constructor in an environment.

updVectInfo :: GlobalEnv -> TypeEnv -> VectInfo -> VectInfoSource

TODO: What is this for?