ghc-7.0.1: The GHC API

Vectorise.Env

Contents

Synopsis

Documentation

data Scope a b

Indicates what scope something (a variable) is in.

Constructors

Global a 
Local b 

Local Environments

data LocalEnv

The local environment.

emptyLocalEnv :: LocalEnv

Create an empty local environment.

Global Environments

data GlobalEnv

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 -> GlobalEnv

Create an initial global environment

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

Extend the list of global variables in an environment.

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

Extend the set of scalar variables in an environment.

setFamInstEnv :: FamInstEnv -> GlobalEnv -> GlobalEnv

Set the list of type family instances in an environment.

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

Extend the list of type constructors in an environment.

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

Extend the list of data constructors in an environment.

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

Extend the list of PA functions in an environment.

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

Set the list of PR functions in an environment.

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

Set the list of boxed type constructor in an environment.

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

TODO: What is this for?