From: Ben.Lippmeier@anu.edu.au Date: Mon, 20 Aug 2007 10:18:59 +0000 (+0000) Subject: NCG debugging cleanup X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=dc6cd68f919657139df43136b1bd57520b2a01b2 NCG debugging cleanup --- diff --git a/compiler/nativeGen/AsmCodeGen.lhs b/compiler/nativeGen/AsmCodeGen.lhs index 29ffb89..13f620f 100644 --- a/compiler/nativeGen/AsmCodeGen.lhs +++ b/compiler/nativeGen/AsmCodeGen.lhs @@ -371,51 +371,50 @@ x86fp_kludge top@(CmmProc info lbl params code) = cmmNativeGenDump :: DynFlags -> Module -> ModLocation -> [CmmNativeGenDump] -> IO () cmmNativeGenDump dflags mod modLocation dump = do - dumpIfSet_dyn dflags Opt_D_dump_opt_cmm "Optimised Cmm" (pprCmm $ Cmm $ map cdCmmOpt dump) dumpIfSet_dyn dflags - Opt_D_dump_asm_native "(asm-native) Native code" + Opt_D_dump_asm_native "Native code" (vcat $ map (docToSDoc . pprNatCmmTop) $ concatMap cdNative dump) dumpIfSet_dyn dflags - Opt_D_dump_asm_liveness "(asm-liveness) Liveness info added" + Opt_D_dump_asm_liveness "Liveness annotations added" (vcat $ map (ppr . cdLiveness) dump) dumpIfSet_dyn dflags - Opt_D_dump_asm_coalesce "(asm-coalesce) Register moves coalesced." - (vcat $ map (ppr . (\(Just c) -> c) . cdCoalesce) dump) + Opt_D_dump_asm_coalesce "Reg-Reg moves coalesced" + (vcat $ map (fromMaybe empty . liftM ppr . cdCoalesce) dump) dumpIfSet_dyn dflags - Opt_D_dump_asm_regalloc "(asm-regalloc) Registers allocated" + Opt_D_dump_asm_regalloc "Registers allocated" (vcat $ map (docToSDoc . pprNatCmmTop) $ concatMap cdAlloced dump) -- with the graph coloring allocator, show the result of each build/spill stage -- for each block in turn. - mapM_ (\codeGraphs - -> dumpIfSet_dyn dflags - Opt_D_dump_asm_regalloc_stages "(asm-regalloc-stages)" - (vcat $ map (\(stage, stats) -> - text "-- Stage " <> int stage - $$ ppr stats) - (zip [0..] codeGraphs))) - $ map ((\(Just c) -> c) . cdRegAllocStats) dump - + when (dopt Opt_D_dump_asm_regalloc_stages dflags) + $ do mapM_ (\stats + -> printDump + $ vcat $ map (\(stage, stats) -> + text "-- Stage " <> int stage + $$ ppr stats) + (zip [0..] stats)) + $ map (fromMaybe [] . cdRegAllocStats) dump -- Build a global register conflict graph. -- If you want to see the graph for just one basic block then use asm-regalloc-stages instead. dumpIfSet_dyn dflags - Opt_D_dump_asm_conflicts "(asm-conflicts) Register conflict graph" + Opt_D_dump_asm_conflicts "Register conflict graph" $ Color.dotGraph Color.regDotColor trivColorable $ foldl Color.union Color.initGraph $ catMaybes $ map cdColoredGraph dump - - -- Drop native code gen statistics. - -- This is potentially a large amount of information, so we make a new file instead - -- of dumping it to stdout. + -- Drop native code generator statistics. + -- This is potentially a large amount of information, and we want to be able + -- to collect it while running nofib. Drop a new file instead of emitting + -- it to stdout/stderr. + -- when (dopt Opt_D_drop_asm_stats dflags) $ do -- make the drop file name based on the object file name let dropFile = (init $ ml_obj_file modLocation) ++ "drop-asm-stats" @@ -435,8 +434,6 @@ cmmNativeGenDump dflags mod modLocation dump writeFile dropFile (showSDoc $ vcat [outSpills, outLife, outConflict, outScatter]) - return () - return () -- -----------------------------------------------------------------------------