Fix vectoriser bug
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 15 Sep 2008 04:28:23 +0000 (04:28 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 15 Sep 2008 04:28:23 +0000 (04:28 +0000)
We were using mkWildId in situations where it cause disastrous shadowing

compiler/vectorise/VectMonad.hs
compiler/vectorise/Vectorise.hs

index ecbc7d9..2e100a9 100644 (file)
@@ -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
index 1c8e19c..70e69b7 100644 (file)
@@ -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)]