From cc67e20f5c6355919b54f82c2620515fa28269a8 Mon Sep 17 00:00:00 2001 From: Roman Leshchinskiy Date: Mon, 15 Sep 2008 04:28:23 +0000 Subject: [PATCH] Fix vectoriser bug We were using mkWildId in situations where it cause disastrous shadowing --- compiler/vectorise/VectMonad.hs | 2 +- compiler/vectorise/Vectorise.hs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index ecbc7d9..2e100a9 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -336,7 +336,7 @@ newLocalVar fs ty return $ mkSysLocal fs u ty newDummyVar :: Type -> VM Var -newDummyVar = newLocalVar (fsLit "ds") +newDummyVar = newLocalVar (fsLit "vv") newTyVar :: FastString -> Kind -> VM Var newTyVar fs k diff --git a/compiler/vectorise/Vectorise.hs b/compiler/vectorise/Vectorise.hs index 1c8e19c..70e69b7 100644 --- a/compiler/vectorise/Vectorise.hs +++ b/compiler/vectorise/Vectorise.hs @@ -370,11 +370,13 @@ vectAlgCase tycon _ty_args scrut bndr ty alts let (vect_scrut, lift_scrut) = vscrut (vect_bodies, lift_bodies) = unzip vbodies - let vect_case = Case vect_scrut (mkWildId (exprType vect_scrut)) vty + vdummy <- newDummyVar (exprType vect_scrut) + ldummy <- newDummyVar (exprType lift_scrut) + let vect_case = Case vect_scrut vdummy vty (zipWith3 mk_vect_alt vect_dcs vect_bndrss vect_bodies) lbody <- combinePA vty len sel indices lift_bodies - let lift_case = Case lift_scrut (mkWildId (exprType lift_scrut)) lty + let lift_case = Case lift_scrut ldummy lty [(DataAlt arr_dc, shape_bndrs ++ concat lift_bndrss, lbody)] -- 1.7.10.4