summaryrefslogtreecommitdiff
path: root/compiler/iface
diff options
context:
space:
mode:
authordias@eecs.harvard.edu <unknown>2008-05-29 16:05:45 +0000
committerdias@eecs.harvard.edu <unknown>2008-05-29 16:05:45 +0000
commit0d80489c9b9f2421f65d8dd86c1e50c6bb429715 (patch)
tree68fbebbb771f95252e847cd91180c614b405f14c /compiler/iface
parent724a9e83f9498382e3580d26a7dd7cd6b108408c (diff)
downloadhaskell-0d80489c9b9f2421f65d8dd86c1e50c6bb429715.tar.gz
Replacing copyins and copyouts with data-movement instructions
o Moved BlockId stuff to a new file to avoid module recursion o Defined stack areas for parameter-passing locations and spill slots o Part way through replacing copy in and copy out nodes - added movement instructions for stack pointer - added movement instructions for call and return parameters (but not with the proper calling conventions) o Inserting spills and reloads for proc points is now procpoint-aware (it was relying on the presence of a CopyIn node as a proxy for procpoint knowledge) o Changed ZipDataflow to expect AGraphs (instead of being polymorphic in the type of graph)
Diffstat (limited to 'compiler/iface')
-rw-r--r--compiler/iface/BinIface.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/iface/BinIface.hs b/compiler/iface/BinIface.hs
index 152381c528..ab4ab01a8c 100644
--- a/compiler/iface/BinIface.hs
+++ b/compiler/iface/BinIface.hs
@@ -73,6 +73,12 @@ readBinIface_ checkHiWay traceBinIFaceReading hi_path nc = do
= printer (text what <> text ": " <>
vcat [text "Wanted " <> ppr wanted <> text ",",
text "got " <> ppr got])
+
+ errorOnMismatch' :: (Eq a, Show a) => String -> a -> a -> IO () -> IO ()
+ errorOnMismatch' what wanted got io
+ = do when (wanted /= got) $ io
+ errorOnMismatch what wanted got
+
errorOnMismatch :: (Eq a, Show a) => String -> a -> a -> IO ()
errorOnMismatch what wanted got
-- This will be caught by readIface which will emit an error