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