• Ben.Lippmeier@anu.edu.au's avatar
    Add graph coloring register allocator. · 0f7d268d
    Ben.Lippmeier@anu.edu.au authored
    Refactored linear allocator into separate liveness annotation and allocation stages.
    Added graph coloring allocator, use -fregs-graph to enable.
      New dump flags are
        -ddump-asm-native          -- output of cmm -> native transform.
        -ddump-asm-liveness        -- code annotated with register liveness info
        -ddump-asm-coalesce        -- output of register move coalescing
                                        (this is a separate pass when using the coloring allocator)
                                        (this could change in the future)
        -ddump-asm-regalloc        -- code after register allocation
        -ddump-asm-regalloc-stages -- blocks after each build/spill stage of coloring allocator
        -ddump-asm-conflicts       -- a global register liveness graph in graphviz format 
    The new register allocator will allocate some registers, but it's not
    quite ready for prime-time yet. The spill code generator needs some work...
DynFlags.hs 58.3 KB