summaryrefslogtreecommitdiff
path: root/Optimiser.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Optimiser.hs')
-rw-r--r--Optimiser.hs15
1 files changed, 1 insertions, 14 deletions
diff --git a/Optimiser.hs b/Optimiser.hs
index 01267e2..626cb50 100644
--- a/Optimiser.hs
+++ b/Optimiser.hs
@@ -9,6 +9,7 @@ import qualified Data.Set as Set
import AST (Name)
import Intermediate
+import Util
optimise :: IRProgram -> IRProgram
@@ -219,17 +220,3 @@ readTempsR RNone = []
mapFoldl :: (s -> a -> (s, b)) -> s -> [a] -> (s, [b])
mapFoldl f s = fmap reverse . foldl' (\(s', yet) x -> fmap (: yet) (f s' x)) (s, [])
-
-uniq :: Eq a => [a] -> [a]
-uniq (x:y:zs) | x == y = uniq (y:zs)
- | otherwise = x : uniq (y:zs)
-uniq l = l
-
-oppositeGraph :: (Show a, Ord a) => Map.Map a [a] -> Map.Map a [a]
-oppositeGraph graph =
- let nodes = concat [k : vs | (k, vs) <- Map.assocs graph]
- edges = map ((,) <$> fst . head <*> map snd)
- . groupBy ((==) `on` fst)
- . sortOn fst
- $ [(to, from) | (from, tos) <- Map.assocs graph, to <- tos]
- in Map.fromList (map (,[]) nodes ++ edges)