From: Roman Leshchinskiy Date: Wed, 22 Aug 2007 06:58:50 +0000 (+0000) Subject: Add vectorisation-related built-in X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=c26787dd0e3e0e6859fcd63e2c92278451e160dc Add vectorisation-related built-in --- diff --git a/compiler/prelude/PrelNames.lhs b/compiler/prelude/PrelNames.lhs index 60aff55..b3194a1 100644 --- a/compiler/prelude/PrelNames.lhs +++ b/compiler/prelude/PrelNames.lhs @@ -217,7 +217,7 @@ genericTyConNames :: [Name] genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName] ndpNames :: [Name] -ndpNames = [ parrayTyConName, paTyConName, preprTyConName +ndpNames = [ parrayTyConName, paTyConName, preprTyConName, prClassName , 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 +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 @@ -779,6 +780,8 @@ randomClassKey = mkPreludeClassUnique 31 randomGenClassKey = mkPreludeClassUnique 32 isStringClassKey = mkPreludeClassUnique 33 + +prClassKey = mkPreludeClassUnique 34 \end{code} %************************************************************************ diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index d407b38..cd26ace 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -35,6 +35,7 @@ import CoreSyn import TyCon import DataCon import Type +import Class import Var import VarEnv import Id @@ -68,6 +69,7 @@ data Builtins = Builtins { , paTyCon :: TyCon , paDataCon :: DataCon , preprTyCon :: TyCon + , prClass :: Class , embedTyCon :: TyCon , embedDataCon :: DataCon , crossTyCon :: TyCon @@ -96,6 +98,7 @@ initBuiltins paTyCon <- dsLookupTyCon paTyConName let [paDataCon] = tyConDataCons paTyCon preprTyCon <- dsLookupTyCon preprTyConName + prClass <- dsLookupClass prClassName embedTyCon <- dsLookupTyCon embedTyConName let [embedDataCon] = tyConDataCons embedTyCon crossTyCon <- dsLookupTyCon ndpCrossTyConName @@ -123,6 +126,7 @@ initBuiltins , paTyCon = paTyCon , paDataCon = paDataCon , preprTyCon = preprTyCon + , prClass = prClass , embedTyCon = embedTyCon , embedDataCon = embedDataCon , crossTyCon = crossTyCon