X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmCPS.hs;h=7bfdf8437e054485c7b3f64602f3def17f53ed89;hb=bf818ff8d2777aac58ec8357ecb5f7f43b98743d;hp=f6a677a8fe4a022ea090a80cd81fbaf22c2269c2;hpb=da300d714ef9d807933e06c202a5898864734b5a;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmCPS.hs b/compiler/cmm/CmmCPS.hs index f6a677a..7bfdf84 100644 --- a/compiler/cmm/CmmCPS.hs +++ b/compiler/cmm/CmmCPS.hs @@ -31,9 +31,7 @@ import UniqSupply import UniqSet import Unique -import Monad -import IO -import Data.List +import Control.Monad ----------------------------------------------------------------------------- -- |Top level driver for the CPS pass @@ -44,7 +42,7 @@ cmmCPS :: DynFlags -- ^ Dynamic flags: -dcmm-lint -ddump-cps-cmm cmmCPS dflags cmm_with_calls = do { when (dopt Opt_DoCmmLinting dflags) $ do showPass dflags "CmmLint" - case firstJust $ map cmmLint cmm_with_calls of + case firstJusts $ map cmmLint cmm_with_calls of Just err -> do printDump err ghcExit dflags 1 Nothing -> return () @@ -237,6 +235,7 @@ gatherBlocksIntoContinuation live proc_points blocks start = children = (collectNonProcPointTargets proc_points blocks (unitUniqSet start) [start]) `minusUniqSet` (unitUniqSet start) start_block = lookupWithDefaultBEnv blocks unknown_block start children_blocks = map (lookupWithDefaultBEnv blocks unknown_block) (uniqSetToList children) + unknown_block :: a -- Used at more than one type unknown_block = panic "unknown block in gatherBlocksIntoContinuation" body = start_block : children_blocks