From 8f1215080ce57e1a579b6747c18471c8c6d3712a Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Mon, 28 Jan 2008 12:54:21 +0000 Subject: [PATCH] Changed checkArrayUsage to be a function ready to feed into checkPar, rather than one that uses it --- checks/ArrayUsageCheck.hs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/checks/ArrayUsageCheck.hs b/checks/ArrayUsageCheck.hs index 98646a7..fe1ce64 100644 --- a/checks/ArrayUsageCheck.hs +++ b/checks/ArrayUsageCheck.hs @@ -43,17 +43,13 @@ usageCheckPass t = do g' <- buildFlowGraph labelFunctions t g <- case g' of Left err -> die err Right g -> return g - checkArrayUsage g + sequence_ $ checkPar checkArrayUsage g return t - -checkArrayUsage :: forall m. (Die m, CSM m) => FlowGraph m (Maybe Decl, Vars) -> m () -checkArrayUsage graph = sequence_ $ checkPar checkArrayUsage' graph - where - checkArrayUsage' :: (Meta, ParItems (Maybe Decl, Vars)) -> m () - checkArrayUsage' (m,p) = mapM_ (checkIndexes m) $ Map.toList $ - groupArrayIndexes $ transformParItems snd p - +checkArrayUsage :: forall m. (Die m, CSM m) => (Meta, ParItems (Maybe Decl, Vars)) -> m () +checkArrayUsage (m,p) = mapM_ (checkIndexes m) $ Map.toList $ + groupArrayIndexes $ transformParItems snd p + where -- Returns (array name, list of written-to indexes, list of read-from indexes) groupArrayIndexes :: ParItems Vars -> Map.Map String (ParItems ([A.Expression], [A.Expression])) groupArrayIndexes vs = filterByKey $ transformParItems (uncurry (zipMap join) . (transformPair (makeList . writtenVars) (makeList . readVars)) . mkPair) vs