X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectUtils.hs;h=0d5585fc043160cbefed49b41fe14796db6f323f;hb=9a4ef343a46e823bcf949af8501c13cc8ca98fb1;hp=5c014610c5581dec4814544fb602ab8e9f0545a0;hpb=28bb3c3c8c1467ca31db59f0b3d1a21df6607742;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectUtils.hs b/compiler/vectorise/VectUtils.hs index 5c01461..0d5585f 100644 --- a/compiler/vectorise/VectUtils.hs +++ b/compiler/vectorise/VectUtils.hs @@ -394,12 +394,13 @@ buildClosures :: [TyVar] -> [VVar] -> [Type] -> Type -> VM VExpr -> VM VExpr buildClosures _ _ [] _ mk_body = mk_body buildClosures tvs vars [arg_ty] res_ty mk_body - = buildClosure tvs vars arg_ty res_ty mk_body + = liftM vInlineMe (buildClosure tvs vars arg_ty res_ty mk_body) buildClosures tvs vars (arg_ty : arg_tys) res_ty mk_body = do res_ty' <- mkClosureTypes arg_tys res_ty arg <- newLocalVVar (fsLit "x") arg_ty - buildClosure tvs vars arg_ty res_ty' + liftM vInlineMe + . buildClosure tvs vars arg_ty res_ty' . hoistPolyVExpr tvs $ do lc <- builtin liftingContext @@ -424,7 +425,7 @@ buildClosure tvs vars arg_ty res_ty mk_body body <- mk_body body' <- bind (vVar env_bndr) (vVarApps lc body (vars ++ [arg_bndr])) - return (vLamsWithoutLC [env_bndr, arg_bndr] body') + return . vInlineMe $ vLamsWithoutLC [env_bndr, arg_bndr] body' mkClosure arg_ty res_ty env_ty fn env