X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectorise%2FMonad.hs;h=259743058e675cc259330cd1fdadeca7dfb2e578;hb=80cb2c397aec9751586c3a2a753f848e143dbd67;hp=6ead3d07fc4739a47988f6aacabd09eca1fe8886;hpb=94bf0d3604ff0d2ecab246924af712bdd1c29a40;p=ghc-hetmet.git diff --git a/compiler/vectorise/Vectorise/Monad.hs b/compiler/vectorise/Vectorise/Monad.hs index 6ead3d0..2597430 100644 --- a/compiler/vectorise/Vectorise/Monad.hs +++ b/compiler/vectorise/Vectorise/Monad.hs @@ -16,7 +16,9 @@ module Vectorise.Monad ( lookupVar, maybeCantVectoriseVarM, dumpVar, - + addGlobalScalar, + deleteGlobalScalar, + -- * Primitives lookupPrimPArray, lookupPrimMethod @@ -40,7 +42,7 @@ import Id import DsMonad import Outputable import Control.Monad - +import VarSet -- | Run a vectorisation computation. initV :: PackageId @@ -137,7 +139,19 @@ dumpVar var | otherwise = cantVectorise "Variable not vectorised:" (ppr var) +-- local scalars -------------------------------------------------------------- +-- | Check if the variable is a locally defined scalar function + +addGlobalScalar :: Var -> VM () +addGlobalScalar var + = updGEnv $ \env -> pprTrace "addGLobalScalar" (ppr var) env{global_scalars = extendVarSet (global_scalars env) var} + +deleteGlobalScalar :: Var -> VM () +deleteGlobalScalar var + = updGEnv $ \env -> pprTrace "deleteGLobalScalar" (ppr var) env{global_scalars = delVarSet (global_scalars env) var} + + -- Primitives ----------------------------------------------------------------- lookupPrimPArray :: TyCon -> VM (Maybe TyCon) lookupPrimPArray = liftBuiltinDs . primPArray