Add vectorisation-related built-in
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Wed, 22 Aug 2007 06:58:50 +0000 (06:58 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Wed, 22 Aug 2007 06:58:50 +0000 (06:58 +0000)
compiler/prelude/PrelNames.lhs
compiler/vectorise/VectMonad.hs

index 60aff55..b3194a1 100644 (file)
@@ -217,7 +217,7 @@ genericTyConNames :: [Name]
 genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName]
 
 ndpNames :: [Name]
 genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName]
 
 ndpNames :: [Name]
-ndpNames = [ parrayTyConName, paTyConName, preprTyConName
+ndpNames = [ parrayTyConName, paTyConName, preprTyConName, prClassName
            , ndpCrossTyConName, ndpPlusTyConName, embedTyConName
            , closureTyConName
            , mkClosureName, applyClosureName
            , ndpCrossTyConName, ndpPlusTyConName, embedTyConName
            , closureTyConName
            , mkClosureName, applyClosureName
@@ -696,6 +696,7 @@ checkDotnetResName  = varQual  dOTNET FSLIT("checkResult")     checkDotnetResNam
 parrayTyConName     = tcQual   nDP_PARRAY FSLIT("PArray") parrayTyConKey
 paTyConName         = tcQual   nDP_PARRAY FSLIT("PA")     paTyConKey
 preprTyConName      = tcQual   nDP_PARRAY FSLIT("PRepr")  preprTyConKey
 parrayTyConName     = tcQual   nDP_PARRAY FSLIT("PArray") parrayTyConKey
 paTyConName         = tcQual   nDP_PARRAY FSLIT("PA")     paTyConKey
 preprTyConName      = tcQual   nDP_PARRAY FSLIT("PRepr")  preprTyConKey
+prClassName         = clsQual  nDP_PARRAY FSLIT("PR")     prClassKey
 ndpCrossTyConName   = tcQual   nDP_PARRAY FSLIT(":*:")    ndpCrossTyConKey
 ndpPlusTyConName    = tcQual   nDP_PARRAY FSLIT(":+:")    ndpPlusTyConKey
 embedTyConName      = tcQual   nDP_PARRAY FSLIT("Embed")  embedTyConKey
 ndpCrossTyConName   = tcQual   nDP_PARRAY FSLIT(":*:")    ndpCrossTyConKey
 ndpPlusTyConName    = tcQual   nDP_PARRAY FSLIT(":+:")    ndpPlusTyConKey
 embedTyConName      = tcQual   nDP_PARRAY FSLIT("Embed")  embedTyConKey
@@ -779,6 +780,8 @@ randomClassKey              = mkPreludeClassUnique 31
 randomGenClassKey      = mkPreludeClassUnique 32
 
 isStringClassKey       = mkPreludeClassUnique 33
 randomGenClassKey      = mkPreludeClassUnique 32
 
 isStringClassKey       = mkPreludeClassUnique 33
+
+prClassKey              = mkPreludeClassUnique 34
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index d407b38..cd26ace 100644 (file)
@@ -35,6 +35,7 @@ import CoreSyn
 import TyCon
 import DataCon
 import Type
 import TyCon
 import DataCon
 import Type
+import Class
 import Var
 import VarEnv
 import Id
 import Var
 import VarEnv
 import Id
@@ -68,6 +69,7 @@ data Builtins = Builtins {
                 , paTyCon          :: TyCon
                 , paDataCon        :: DataCon
                 , preprTyCon       :: TyCon
                 , paTyCon          :: TyCon
                 , paDataCon        :: DataCon
                 , preprTyCon       :: TyCon
+                , prClass          :: Class
                 , embedTyCon       :: TyCon
                 , embedDataCon     :: DataCon
                 , crossTyCon       :: TyCon
                 , embedTyCon       :: TyCon
                 , embedDataCon     :: DataCon
                 , crossTyCon       :: TyCon
@@ -96,6 +98,7 @@ initBuiltins
       paTyCon      <- dsLookupTyCon paTyConName
       let [paDataCon] = tyConDataCons paTyCon
       preprTyCon   <- dsLookupTyCon preprTyConName
       paTyCon      <- dsLookupTyCon paTyConName
       let [paDataCon] = tyConDataCons paTyCon
       preprTyCon   <- dsLookupTyCon preprTyConName
+      prClass      <- dsLookupClass prClassName
       embedTyCon   <- dsLookupTyCon embedTyConName
       let [embedDataCon] = tyConDataCons embedTyCon
       crossTyCon   <- dsLookupTyCon ndpCrossTyConName
       embedTyCon   <- dsLookupTyCon embedTyConName
       let [embedDataCon] = tyConDataCons embedTyCon
       crossTyCon   <- dsLookupTyCon ndpCrossTyConName
@@ -123,6 +126,7 @@ initBuiltins
                , paTyCon          = paTyCon
                , paDataCon        = paDataCon
                , preprTyCon       = preprTyCon
                , paTyCon          = paTyCon
                , paDataCon        = paDataCon
                , preprTyCon       = preprTyCon
+               , prClass          = prClass
                , embedTyCon       = embedTyCon
                , embedDataCon     = embedDataCon
                , crossTyCon       = crossTyCon
                , embedTyCon       = embedTyCon
                , embedDataCon     = embedDataCon
                , crossTyCon       = crossTyCon