NCG: Refactor representation of code with liveness info
authorBen.Lippmeier@anu.edu.au <unknown>
Thu, 17 Sep 2009 09:07:30 +0000 (09:07 +0000)
committerBen.Lippmeier@anu.edu.au <unknown>
Thu, 17 Sep 2009 09:07:30 +0000 (09:07 +0000)
commite17cf7ff32778f4e6b3622855f25426251e843d6
tree8d8617c94d40157656d28c675119190eca0f838e
parent028c032b60567b8cd501e9d7248e4aa86088a19b
NCG: Refactor representation of code with liveness info

 * I've pushed the SPILL and RELOAD instrs down into the
   LiveInstr type to make them easier to work with.

 * When the graph allocator does a spill cycle it now just
   re-annotates the LiveCmmTops instead of converting them
   to NatCmmTops and back.

 * This saves working out the SCCS again, and avoids rewriting
   the SPILL and RELOAD meta instructions into real machine
   instructions.
compiler/nativeGen/AsmCodeGen.lhs
compiler/nativeGen/RegAlloc/Graph/Coalesce.hs
compiler/nativeGen/RegAlloc/Graph/Main.hs
compiler/nativeGen/RegAlloc/Graph/Spill.hs
compiler/nativeGen/RegAlloc/Graph/SpillClean.hs
compiler/nativeGen/RegAlloc/Graph/SpillCost.hs
compiler/nativeGen/RegAlloc/Graph/Stats.hs
compiler/nativeGen/RegAlloc/Linear/Main.hs
compiler/nativeGen/RegAlloc/Liveness.hs