Commit 5ac94687 authored by rl@cse.unsw.edu.au's avatar rl@cse.unsw.edu.au
Browse files

Don't panic on non-vectorisable expressions

parent dab80474
......@@ -2,7 +2,8 @@ module VectMonad (
Scope(..),
VM,
noV, tryV, maybeV, traceMaybeV, orElseV, fixV, localV, closedV, initV,
noV, traceNoV, tryV, maybeV, traceMaybeV, orElseV, fixV, localV, closedV,
initV,
liftDs,
cloneName, cloneId, cloneVar,
newExportedVar, newLocalVar, newDummyVar, newTyVar,
......
......@@ -86,7 +86,7 @@ vectType ty@(ForAllTy _ _)
where
(tyvars, mono_ty) = splitForAllTys ty
vectType ty = pprPanic "vectType:" (ppr ty)
vectType ty = traceNoV "vectType: can't vectorise" (ppr ty)
vectAndBoxType :: Type -> VM Type
vectAndBoxType ty = vectType ty >>= boxType
......
......@@ -250,9 +250,6 @@ vectExpr (_, AnnCase scrut bndr ty alts)
where
scrut_ty = exprType (deAnnotate scrut)
vectExpr (_, AnnCase _ _ _ _)
= panic "vectExpr: case"
vectExpr (_, AnnLet (AnnNonRec bndr rhs) body)
= do
vrhs <- localV . inBind bndr $ vectPolyExpr rhs
......@@ -274,12 +271,11 @@ vectExpr (_, AnnLet (AnnRec bs) body)
$ vectExpr rhs
vectExpr e@(fvs, AnnLam bndr _)
| not (isId bndr) = pprPanic "vectExpr" (ppr $ deAnnotate e)
| otherwise = vectLam fvs bs body
| isId bndr = vectLam fvs bs body
where
(bs,body) = collectAnnValBinders e
vectExpr e = pprPanic "vectExpr" (ppr $ deAnnotate e)
vectExpr e = traceNoV "vectExpr: can't vectorise" (ppr $ deAnnotate e)
vectLam :: VarSet -> [Var] -> CoreExprWithFVs -> VM VExpr
vectLam fvs bs body
......@@ -302,7 +298,7 @@ vectLam fvs bs body
vectTyAppExpr :: CoreExprWithFVs -> [Type] -> VM VExpr
vectTyAppExpr (_, AnnVar v) tys = vectPolyVar v tys
vectTyAppExpr e _ = pprPanic "vectTyAppExpr" (ppr $ deAnnotate e)
vectTyAppExpr e _ = traceNoV "vectTyAppExpr: can't vectorise" (ppr $ deAnnotate e)
-- We convert
--
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment