- readGEnv :: (GlobalEnv -> a) -> VM a
- setGEnv :: GlobalEnv -> VM ()
- updGEnv :: (GlobalEnv -> GlobalEnv) -> VM ()
- defGlobalVar :: Var -> Var -> VM ()
- lookupVectDecl :: Var -> VM (Maybe (Type, CoreExpr))
- noVectDecl :: Var -> VM Bool
- globalScalars :: VM VarSet
- isGlobalScalar :: Var -> VM Bool
- lookupTyCon :: TyCon -> VM (Maybe TyCon)
- lookupBoxedTyCon :: TyCon -> VM (Maybe TyCon)
- defTyCon :: TyCon -> TyCon -> VM ()
- lookupDataCon :: DataCon -> VM (Maybe DataCon)
- defDataCon :: DataCon -> DataCon -> VM ()
- lookupTyConPA :: TyCon -> VM (Maybe Var)
- defTyConPA :: TyCon -> Var -> VM ()
- defTyConPAs :: [(TyCon, Var)] -> VM ()
- lookupTyConPR :: TyCon -> VM (Maybe Var)
Documentation
updGEnv :: (GlobalEnv -> GlobalEnv) -> VM ()Source
Update the global environment using the provided function.
Vars
defGlobalVar :: Var -> Var -> VM ()Source
Add a mapping between a global var and its vectorised version to the state.
Vectorisation declarations
lookupVectDecl :: Var -> VM (Maybe (Type, CoreExpr))Source
Check whether a variable has a (non-scalar) vectorisation declaration.
noVectDecl :: Var -> VM BoolSource
Check whether a variable has a NOVECTORISE
declaration.
Scalars
globalScalars :: VM VarSetSource
Get the set of global scalar variables.
isGlobalScalar :: Var -> VM BoolSource
Check whether a given variable is in the set of global scalar variables.
TyCons
lookupTyCon :: TyCon -> VM (Maybe TyCon)Source
Lookup the vectorised version of a TyCon
from the global environment.
lookupBoxedTyCon :: TyCon -> VM (Maybe TyCon)Source
Lookup the vectorised version of a boxed TyCon
from the global environment.
defTyCon :: TyCon -> TyCon -> VM ()Source
Add a mapping between plain and vectorised TyCon
s to the global environment.
Datacons
lookupDataCon :: DataCon -> VM (Maybe DataCon)Source
Lookup the vectorised version of a DataCon
from the global environment.
defDataCon :: DataCon -> DataCon -> VM ()Source
Add the mapping between plain and vectorised DataCon
s to the global environment.
PA Dictionaries
defTyConPA :: TyCon -> Var -> VM ()Source
Add a mapping between a PA TyCon and is vectorised version to the global environment.
defTyConPAs :: [(TyCon, Var)] -> VM ()Source
Add several mapping between PA TyCons and their vectorised versions to the global environment.