summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>2007-07-26 02:41:44 +0000
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>2007-07-26 02:41:44 +0000
commit40138586cd155916f446d8303803b8c8910ce2b2 (patch)
tree57945106a40987a3e15b8c8afdc1776fdff496d4
parentdc6fa4f565fa0963555b84cd344d744b4b98910f (diff)
downloadhaskell-40138586cd155916f446d8303803b8c8910ce2b2.tar.gz
Create exported names in vectorisation monads
-rw-r--r--compiler/vectorise/VectMonad.hs13
1 files changed, 12 insertions, 1 deletions
diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs
index ed18f1f7a9..944f8c8b3c 100644
--- a/compiler/vectorise/VectMonad.hs
+++ b/compiler/vectorise/VectMonad.hs
@@ -3,7 +3,7 @@ module VectMonad (
VM,
noV, tryV, maybeV, orElseV, fixV, localV, closedV, initV,
- cloneName, newLocalVar, newTyVar,
+ cloneName, newExportedVar, newLocalVar, newTyVar,
Builtins(..), paDictTyCon, paDictDataCon,
builtin,
@@ -47,6 +47,7 @@ import FamInstEnv
import Panic
import Outputable
import FastString
+import SrcLoc ( noSrcSpan )
import Control.Monad ( liftM )
@@ -280,6 +281,16 @@ cloneName mk_occ name = liftM make (liftDs newUnique)
(nameSrcSpan name)
| otherwise = mkSystemName u occ_name
+newExportedVar :: OccName -> Type -> VM Var
+newExportedVar occ_name ty
+ = do
+ mod <- liftDs getModuleDs
+ u <- liftDs newUnique
+
+ let name = mkExternalName u mod occ_name noSrcSpan
+
+ return $ Id.mkExportedLocalId name ty
+
newLocalVar :: FastString -> Type -> VM Var
newLocalVar fs ty
= do