patch applied (ghc): Do conservative coalescing in register allocator

Ben Lippmeier ben.lippmeier at anu.edu.au
Tue Sep 4 08:46:25 EDT 2007


Mon Sep  3 09:34:04 PDT 2007  Ben.Lippmeier at anu.edu.au
  * Do conservative coalescing in register allocator
  
  Avoid coalescing nodes in the register conflict graph if the
  new node will not be trivially colorable. Also remove the
  front end aggressive coalescing pass.
    
  For typical Haskell code the graph coloring allocator now does
  about as well as the linear allocator.
    
  For code with a large amount of register pressure it does much
  better, but takes longer.
    
  For SHA1.lhs from darcs on x86
     
            spills    reloads    reg-reg-moves
            inserted   inserted  left in code   compile-time
    linear    1068      1311        229            7.69(s)
    graph      387       902        340           16.12(s)
  

    M ./compiler/main/DynFlags.hs -3 +1
    M ./compiler/nativeGen/AsmCodeGen.lhs -11 +2
    M ./compiler/nativeGen/GraphColor.hs -1 +1
    M ./compiler/nativeGen/GraphOps.hs -17 +30



More information about the Cvs-ghc mailing list