Add builtin var->var mapping to vectorisation
[ghc-hetmet.git] / compiler / vectorise / VectBuiltIn.hs
index 995d16f..a913467 100644 (file)
@@ -7,7 +7,7 @@
 
 module VectBuiltIn (
   Builtins(..), sumTyCon, prodTyCon, combinePAVar,
-  initBuiltins, initBuiltinTyCons, initBuiltinDataCons,
+  initBuiltins, initBuiltinVars, initBuiltinTyCons, initBuiltinDataCons,
   initBuiltinPAs, initBuiltinPRs,
   initBuiltinBoxedTyCons,
 
@@ -20,7 +20,7 @@ import DsMonad
 import IfaceEnv        ( lookupOrig )
 
 import Module          ( Module )
-import DataCon         ( DataCon, dataConName )
+import DataCon         ( DataCon, dataConName, dataConWorkId )
 import TyCon           ( TyCon, tyConName, tyConDataCons )
 import Var             ( Var )
 import Id              ( mkSysLocal )
@@ -185,6 +185,12 @@ initBuiltins
                , liftingContext   = liftingContext
                }
 
+initBuiltinVars :: Builtins -> [(Var, Var)]
+initBuiltinVars bi = [(v,v) | v <- map dataConWorkId defaultDataConWorkers]
+
+defaultDataConWorkers :: [DataCon]
+defaultDataConWorkers = [trueDataCon, falseDataCon]
+
 initBuiltinTyCons :: Builtins -> [(Name, TyCon)]
 initBuiltinTyCons bi = (tyConName funTyCon, closureTyCon bi)
                      : [(tyConName tc, tc) | tc <- defaultTyCons]