Help understanding server compiler's register allocator

Michael Jantz jantz.michael at gmail.com
Wed Jul 6 13:49:10 PDT 2011


Hello,

I'm a student researcher and I'd like to use the Hotspot server compiler for
a project I'm working on this summer. I'm having some trouble understanding
exactly how the register allocation algorithm is working. Specifically, I'd
like to know more about the MachSpillCopy nodes. It looks like these are
introduced by the Split routine to split register live ranges in order to
reduce register pressure and to eventually allow a complete coloring of the
register live range interference graph. My first question is: Is this always
correct? Do these nodes have any other purpose? Also, do these nodes
correspond directly to copy instructions (i.e. register to register moves)
in the final generated code? Finally, are there any other materials for
helping me to understand the intermediate representations used in this
compiler?

Thanks,
Michael Jantz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20110706/f5c75576/attachment.html 


More information about the hotspot-compiler-dev mailing list