Overview
Syllabus
Intro
Overview
What is Escape Analysis?
Partial Escape Analysis
EA Consuming Optimizations
Hotspot C2 EA and optimizations
Example of non escaping objects
Limitations of scalar replacement
How common is this issue?
Simple change to the experiment
Could we make scalar replacement work?
Considering the previous example...
Stack allocate if scalar replacement fails
What if C2 had stack allocation?
How did we implement this in C2
Bax.ackNode to the rescue
We had to...
GC roat scanning of stack allocated objects
Overlapping live object ranges
Current Limitations
Performance improvements
When and where can we see this patch?
Next steps
Taught by
Java