Changed checkArrayUsage to be a function ready to feed into checkPar, rather than one that uses it
This commit is contained in:
parent
168e5b5cc1
commit
8f1215080c
|
@ -43,17 +43,13 @@ usageCheckPass t = do g' <- buildFlowGraph labelFunctions t
|
||||||
g <- case g' of
|
g <- case g' of
|
||||||
Left err -> die err
|
Left err -> die err
|
||||||
Right g -> return g
|
Right g -> return g
|
||||||
checkArrayUsage g
|
sequence_ $ checkPar checkArrayUsage g
|
||||||
return t
|
return t
|
||||||
|
|
||||||
|
checkArrayUsage :: forall m. (Die m, CSM m) => (Meta, ParItems (Maybe Decl, Vars)) -> m ()
|
||||||
checkArrayUsage :: forall m. (Die m, CSM m) => FlowGraph m (Maybe Decl, Vars) -> m ()
|
checkArrayUsage (m,p) = mapM_ (checkIndexes m) $ Map.toList $
|
||||||
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
|
groupArrayIndexes $ transformParItems snd p
|
||||||
|
where
|
||||||
-- Returns (array name, list of written-to indexes, list of read-from indexes)
|
-- 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 :: ParItems Vars -> Map.Map String (ParItems ([A.Expression], [A.Expression]))
|
||||||
groupArrayIndexes vs = filterByKey $ transformParItems (uncurry (zipMap join) . (transformPair (makeList . writtenVars) (makeList . readVars)) . mkPair) vs
|
groupArrayIndexes vs = filterByKey $ transformParItems (uncurry (zipMap join) . (transformPair (makeList . writtenVars) (makeList . readVars)) . mkPair) vs
|
||||||
|
|
Loading…
Reference in New Issue
Block a user