X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectType.hs;h=b3fc4488d4a3180a67b98dc1522b0a7160ca2252;hb=cec9b62f2ccdd358aa1d99c4143794b541b87f7e;hp=90a082527e6948bce21b788b2a2e71a3bff2797b;hpb=d40970b835f4fddb099e67a0d4ed684ed6802d23;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectType.hs b/compiler/vectorise/VectType.hs index 90a0825..b3fc448 100644 --- a/compiler/vectorise/VectType.hs +++ b/compiler/vectorise/VectType.hs @@ -32,7 +32,7 @@ import TysPrim ( intPrimTy ) import Unique import UniqFM import UniqSet -import Util ( singleton ) +import Util import Digraph ( SCC(..), stronglyConnComp ) import Outputable @@ -154,11 +154,8 @@ vectTypeEnv env vectTyConDecls :: [TyCon] -> VM [TyCon] vectTyConDecls tcs = fixV $ \tcs' -> do - mapM_ (uncurry defTyCon) (lazy_zip tcs tcs') + mapM_ (uncurry defTyCon) (zipLazy tcs tcs') mapM vectTyConDecl tcs - where - lazy_zip [] _ = [] - lazy_zip (x:xs) ~(y:ys) = (x,y) : lazy_zip xs ys vectTyConDecl :: TyCon -> VM TyCon vectTyConDecl tc @@ -433,7 +430,7 @@ arrReprVars repr mkRepr :: TyCon -> VM Repr mkRepr vect_tc | [tys] <- rep_tys = boxedProductRepr tys - -- | all null rep_tys = enumRepr + -- removed: | all null rep_tys = enumRepr | otherwise = sumRepr =<< mapM unboxedProductRepr rep_tys where rep_tys = map dataConRepArgTys $ tyConDataCons vect_tc @@ -708,9 +705,9 @@ buildFromArrPRepr repr vect_tc prepr_tc arr_tc from_repr _ _ _ _ _ _ = panic "buildFromArrPRepr/from_repr" - from_prod prod@(ProdRepr { prod_components = tys - , prod_arr_tycon = tycon - , prod_arr_data_con = data_con }) + from_prod (ProdRepr { prod_components = tys + , prod_arr_tycon = tycon + , prod_arr_data_con = data_con }) expr shape_vars repr_vars @@ -719,7 +716,6 @@ buildFromArrPRepr repr vect_tc prepr_tc arr_tc = do let scrut = unwrapFamInstScrut tycon tys expr scrut_ty = mkTyConApp tycon tys - _ty <- arrReprType prod return $ Case scrut (mkWildId scrut_ty) res_ty [(DataAlt data_con, shape_vars ++ repr_vars, body)]