From a2cc9611495710ab00355ebbd8e3d526b1a7d617 Mon Sep 17 00:00:00 2001 From: Roman Leshchinskiy Date: Wed, 25 Jul 2007 03:35:30 +0000 Subject: [PATCH] Use emptyPA in vectorisation --- compiler/vectorise/VectMonad.hs | 3 +++ compiler/vectorise/VectUtils.hs | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 09e2d2f..cd46cf8 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -65,6 +65,7 @@ data Builtins = Builtins { , applyClosurePVar :: Var , lengthPAVar :: Var , replicatePAVar :: Var + , emptyPAVar :: Var } paDictTyCon :: Builtins -> TyCon @@ -83,6 +84,7 @@ initBuiltins applyClosurePVar <- dsLookupGlobalId applyClosurePName lengthPAVar <- dsLookupGlobalId lengthPAName replicatePAVar <- dsLookupGlobalId replicatePAName + emptyPAVar <- dsLookupGlobalId emptyPAName return $ Builtins { parrayTyCon = parrayTyCon @@ -94,6 +96,7 @@ initBuiltins , applyClosurePVar = applyClosurePVar , lengthPAVar = lengthPAVar , replicatePAVar = replicatePAVar + , emptyPAVar = emptyPAVar } data GlobalEnv = GlobalEnv { diff --git a/compiler/vectorise/VectUtils.hs b/compiler/vectorise/VectUtils.hs index 24a12ea..0df1672 100644 --- a/compiler/vectorise/VectUtils.hs +++ b/compiler/vectorise/VectUtils.hs @@ -3,7 +3,7 @@ module VectUtils ( splitClosureTy, mkPADictType, mkPArrayType, paDictArgType, paDictOfType, - paMethod, lengthPA, replicatePA, + paMethod, lengthPA, replicatePA, emptyPA, lookupPArrayFamInst, hoistExpr, takeHoisted ) where @@ -123,6 +123,9 @@ replicatePA :: CoreExpr -> CoreExpr -> VM CoreExpr replicatePA len x = liftM (`mkApps` [len,x]) (paMethod replicatePAVar (exprType x)) +emptyPA :: Type -> VM CoreExpr +emptyPA = paMethod emptyPAVar + lookupPArrayFamInst :: Type -> VM (TyCon, [Type]) lookupPArrayFamInst ty = builtin parrayTyCon >>= (`lookupFamInst` [ty]) -- 1.7.10.4