• Ben.Lippmeier@anu.edu.au's avatar
    Tune coalescing in non-iterative register allocator · fff4dee0
    Ben.Lippmeier@anu.edu.au authored
    If iterative coalescing isn't turned on, then do a single aggressive
    coalescing pass for the first build/color cycle and then back off to 
    conservative coalescing for subseqent passes.
    Aggressive coalescing is a cheap way to eliminate lots of the reg-reg
    moves, but it can make the graph less colorable - if we turn it on 
    for every pass then allocation for code with a large amount of register
    pressure (ie SHA1) doesn't converge in a sensible number of cycles.
GraphColor.hs 11 KB