X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FRegAllocColor.hs;h=ecb5fafc655f843454c46d46309f76f2ffd4e995;hb=4839f119310cd82dec679239e0897e4a2a26ee92;hp=0a5c1603398a03e6702e8fc02dd62d812a0f1c69;hpb=3aa061857b4df40fc641ef748d5f651d664b22f2;p=ghc-hetmet.git diff --git a/compiler/nativeGen/RegAllocColor.hs b/compiler/nativeGen/RegAllocColor.hs index 0a5c160..ecb5faf 100644 --- a/compiler/nativeGen/RegAllocColor.hs +++ b/compiler/nativeGen/RegAllocColor.hs @@ -106,13 +106,20 @@ regAlloc_spin (spinCount :: Int) triv regsFree slotsFree debug_codeGraphs code then do -- patch the registers using the info in the graph let code_patched = map (patchRegsFromGraph graph_colored) code + + -- strip off liveness information let code_nat = map stripLive code_patched + + -- rewrite SPILL/REALOAD pseudos into real instructions + let spillNatTop = mapGenBlockTop spillNatBlock + let code_final = map spillNatTop code_nat -- record what happened in this stage for debugging let stat = RegAllocStatsColored { raGraph = graph_colored - , raPatchedCmm = code_patched } + , raPatchedCmm = code_patched + , raFinalCmm = code_final } return ( code_nat , [stat] ++ maybeToList stat1 ++ debug_codeGraphs