Difference between revisions of "Register Allocation on SSA form for Java Just-in-Time Compilation"

From JVMLangSummit
Jump to navigationJump to search
(One intermediate revision by the same user not shown)
Line 1: Line 1:
;Speaker: Christian Wimmer, University of California, Irvine
;Speaker: Christian Wimmer, University of California, Irvine
;Homepage: http://www.christianwimmer.at/
;Homepage: http://www.christianwimmer.at/
;Slides: [[Image:LinearScanSSA.pdf]]
;Resources: [[Media:LinearScanSSA.pdf | Slides]] and [http://medianetwork.oracle.com/media/show/15495 Video]

Latest revision as of 11:11, 3 September 2010

Christian Wimmer, University of California, Irvine
Slides and Video


Register allocation is one of the most important, but also the most expensive compiler optimizations. This is especially critical for Java just-in-time compilation where compilation time adds to run time, and led to different register allocation algorithms that trade code quality for compilation time. Static single assignment (SSA) form is a type of intermediate representation that simplifies many compiler optimizations. However, only recently it was discovered that SSA form is also beneficial for register allocation. The two main register allocation algorithms, graph coloring and linear scan, are now available in versions that operate directly on SSA form. This talk presents the details of the changes that are necessary for this, and explains the benefits gained by SSA form. Our implementation for the Java HotSpot VM shows that register allocation gets both faster and simpler.