X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectUtils.hs;h=b3c110e9805a8e38033c79c4c3218e710d01fdff;hb=cdb1c5e717ec91f5ba7db30cabbb9dd195dd637a;hp=0727c947ce67527cd041f1d423c458d0b0145dc9;hpb=8bae351221fbd5eabe562641499c14d379816875;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectUtils.hs b/compiler/vectorise/VectUtils.hs index 0727c94..b3c110e 100644 --- a/compiler/vectorise/VectUtils.hs +++ b/compiler/vectorise/VectUtils.hs @@ -7,7 +7,7 @@ module VectUtils ( paMethod, lengthPA, replicatePA, emptyPA, liftPA, polyAbstract, polyApply, polyVApply, lookupPArrayFamInst, - hoistExpr, hoistPolyVExpr, takeHoisted, + hoistBinding, hoistExpr, hoistPolyVExpr, takeHoisted, buildClosure, buildClosures, mkClosureApp ) where @@ -215,12 +215,15 @@ polyVApply expr tys lookupPArrayFamInst :: Type -> VM (TyCon, [Type]) lookupPArrayFamInst ty = builtin parrayTyCon >>= (`lookupFamInst` [ty]) +hoistBinding :: Var -> CoreExpr -> VM () +hoistBinding v e = updGEnv $ \env -> + env { global_bindings = (v,e) : global_bindings env } + hoistExpr :: FastString -> CoreExpr -> VM Var hoistExpr fs expr = do var <- newLocalVar fs (exprType expr) - updGEnv $ \env -> - env { global_bindings = (var, expr) : global_bindings env } + hoistBinding var expr return var hoistVExpr :: VExpr -> VM VVar