no need to check for unreachable blocks with -fnew-codegen
authorSimon Marlow <marlowsd@gmail.com>
Tue, 3 Jul 2012 14:19:15 +0000 (15:19 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 3 Jul 2012 14:19:15 +0000 (15:19 +0100)
we've already done it

compiler/nativeGen/AsmCodeGen.lhs

index a8fd604..454dd86 100644 (file)
@@ -857,7 +857,12 @@ cmmToCmm :: DynFlags -> RawCmmDecl -> (RawCmmDecl, [CLabel])
 cmmToCmm _ top@(CmmData _ _) = (top, [])
 cmmToCmm dflags (CmmProc info lbl (ListGraph blocks)) = runCmmOpt dflags $ do
   let platform = targetPlatform dflags
-  blocks' <- mapM cmmBlockConFold (cmmMiniInline platform (cmmEliminateDeadBlocks blocks))
+
+  let reachable_blocks | dopt Opt_TryNewCodeGen dflags = blocks
+                       | otherwise = cmmEliminateDeadBlocks blocks
+      -- The new codegen path has already eliminated unreachable blocks by now
+
+  blocks' <- mapM cmmBlockConFold (cmmMiniInline platform reachable_blocks)
   return $ CmmProc info lbl (ListGraph blocks')
 
 newtype CmmOptM a = CmmOptM (([CLabel], DynFlags) -> (# a, [CLabel] #))