diff options
author | Max Bolingbroke <batterseapower@hotmail.com> | 2009-07-01 20:03:44 +0000 |
---|---|---|
committer | Max Bolingbroke <batterseapower@hotmail.com> | 2009-07-01 20:03:44 +0000 |
commit | 9d0c8f842e35dde3d570580cf62a32779f66a6de (patch) | |
tree | dbe3743f4ff24c8d4ed7129c780b179275e3748e /compiler/cmm | |
parent | ab1d5052de53479377c961d1e966f0cf0b82c592 (diff) | |
download | haskell-9d0c8f842e35dde3d570580cf62a32779f66a6de.tar.gz |
Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263
Diffstat (limited to 'compiler/cmm')
-rw-r--r-- | compiler/cmm/CmmCPSZ.hs | 8 | ||||
-rw-r--r-- | compiler/cmm/CmmLint.hs | 6 | ||||
-rw-r--r-- | compiler/cmm/DFMonad.hs | 3 | ||||
-rw-r--r-- | compiler/cmm/ZipDataflow.hs | 12 |
4 files changed, 14 insertions, 15 deletions
diff --git a/compiler/cmm/CmmCPSZ.hs b/compiler/cmm/CmmCPSZ.hs index 5f3775b26f..b5a25f8bd9 100644 --- a/compiler/cmm/CmmCPSZ.hs +++ b/compiler/cmm/CmmCPSZ.hs @@ -124,17 +124,17 @@ cpsTop hsc_env (CmmProc h l args (stackInfo@(entry_off, _), g)) = dump Opt_D_dump_cmmz "procpoint map" procPointMap gs <- run $ splitAtProcPoints l callPPs procPoints procPointMap (CmmProc h l args (stackInfo, g)) - mapM (dump Opt_D_dump_cmmz "after splitting") gs + mapM_ (dump Opt_D_dump_cmmz "after splitting") gs let localCAFs = catMaybes $ map (localCAFInfo cafEnv) gs mbpprTrace "localCAFs" (ppr localCAFs) $ return () gs <- liftM concat $ run $ foldM lowerSafeForeignCalls [] gs - mapM (dump Opt_D_dump_cmmz "after lowerSafeForeignCalls") gs + mapM_ (dump Opt_D_dump_cmmz "after lowerSafeForeignCalls") gs -- NO MORE GRAPH TRANSFORMATION AFTER HERE -- JUST MAKING INFOTABLES let gs' = map (setInfoTableStackMap slotEnv areaMap) gs - mapM (dump Opt_D_dump_cmmz "after setInfoTableStackMap") gs' + mapM_ (dump Opt_D_dump_cmmz "after setInfoTableStackMap") gs' let gs'' = map (bundleCAFs cafEnv) gs' - mapM (dump Opt_D_dump_cmmz "after bundleCAFs") gs'' + mapM_ (dump Opt_D_dump_cmmz "after bundleCAFs") gs'' return (localCAFs, gs'') where dflags = hsc_dflags hsc_env mbpprTrace x y z = if dopt Opt_D_dump_cmmz dflags then pprTrace x y z else z diff --git a/compiler/cmm/CmmLint.hs b/compiler/cmm/CmmLint.hs index 1b60ed7193..c2c9b2ad89 100644 --- a/compiler/cmm/CmmLint.hs +++ b/compiler/cmm/CmmLint.hs @@ -69,7 +69,7 @@ lintCmmBlock labels (BasicBlock id stmts) lintCmmExpr :: CmmExpr -> CmmLint CmmType lintCmmExpr (CmmLoad expr rep) = do - lintCmmExpr expr + _ <- lintCmmExpr expr when (widthInBytes (typeWidth rep) >= wORD_SIZE) $ cmmCheckWordAddress expr return rep @@ -126,8 +126,8 @@ lintCmmStmt labels = lint then return () else cmmLintAssignErr stmt erep reg_ty lint (CmmStore l r) = do - lintCmmExpr l - lintCmmExpr r + _ <- lintCmmExpr l + _ <- lintCmmExpr r return () lint (CmmCall target _res args _ _) = lintTarget target >> mapM_ (lintCmmExpr . hintlessCmm) args diff --git a/compiler/cmm/DFMonad.hs b/compiler/cmm/DFMonad.hs index 263d0d4856..bc64ed6eae 100644 --- a/compiler/cmm/DFMonad.hs +++ b/compiler/cmm/DFMonad.hs @@ -167,8 +167,7 @@ instance Monad m => DataflowAnalysis (DFM' m) where text "changed from", nest 4 (ppr old_a), text "to", nest 4 (ppr new), text "after supposedly reaching fixed point;", - text "env is", pprFacts facts]) - ; setFact id a } + text "env is", pprFacts facts]) } } where pprFacts env = vcat (map pprFact (blockEnvToList env)) pprFact (id, a) = hang (ppr id <> colon) 4 (ppr a) diff --git a/compiler/cmm/ZipDataflow.hs b/compiler/cmm/ZipDataflow.hs index 39a4798ee4..17212bb3af 100644 --- a/compiler/cmm/ZipDataflow.hs +++ b/compiler/cmm/ZipDataflow.hs @@ -505,7 +505,7 @@ forward_sol check_maybe = forw forw rewrite name start_facts transfers rewrites = let anal_f :: DFM a b -> a -> Graph m l -> DFM a b anal_f finish in' g = - do { fwd_pure_anal name emptyBlockEnv transfers in' g; finish } + do { _ <- fwd_pure_anal name emptyBlockEnv transfers in' g; finish } solve :: DFM a b -> a -> Graph m l -> Fuel -> DFM a (b, Fuel) solve finish in_fact (Graph entry blockenv) fuel = @@ -609,7 +609,7 @@ forward_rew check_maybe = forw in_fact `seq` g `seq` let Graph entry blockenv = g blocks = G.postorder_dfs_from blockenv entry - in do { solve depth name start transfers rewrites in_fact g fuel + in do { _ <- solve depth name start transfers rewrites in_fact g fuel ; eid <- freshBlockId "temporary entry id" ; (rewritten, fuel) <- rew_tail (ZFirst eid) in_fact entry emptyBlockEnv fuel @@ -618,7 +618,7 @@ forward_rew check_maybe = forw ; return (a, lgraphToGraph (LGraph eid rewritten), fuel) } don't_rewrite facts finish in_fact g fuel = - do { solve depth name facts transfers rewrites in_fact g fuel + do { _ <- solve depth name facts transfers rewrites in_fact g fuel ; a <- finish ; return (a, g, fuel) } @@ -684,8 +684,8 @@ forward_rew check_maybe = forw either_last rewrites in' (LastOther l) = fr_last rewrites l in' check_facts in' (LastOther l) = let LastOutFacts last_outs = ft_last_outs transfers l in' - in mapM (uncurry checkFactMatch) last_outs - check_facts _ LastExit = return [] + in mapM_ (uncurry checkFactMatch) last_outs + check_facts _ LastExit = return () in fixed_pt_and_fuel lastOutFacts :: DFM f (LastOutFacts f) @@ -781,7 +781,7 @@ backward_sol check_maybe = back my_trace "analysis rewrites last node" (ppr l <+> pprGraph g') $ subsolve g exit_fact fuel - ; set_head_fact h a fuel + ; _ <- set_head_fact h a fuel ; return fuel } in do { fuel <- run "backward" name set_block_fact blocks fuel |