JDK-6684714 : Optimize EA Connection Graph build performance
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs12
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2008-04-04
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u14Fixed 7Fixed hs14Fixed
EA spends most time in Connection Graph construction which is done
during each method compilation (with EA is on) since only after CG built 
we can look for scalar replaceable candidates and create unique types 
for fields instances or skip it if there are no such candidates.

The Connection Graph construction should be as fast as posible.

SUGGESTED FIX 1. I am using this push to switch on Escape Analysis by default. 2. Build Connection Graph and execute Escape Analysis only when Ideal graph has allocations and/or locks. Use Compile::_macro_nodes worklist check for that. 3. Several accessors methods were optimized due to the fact that no new ideal nodes should be created during Connection Graph build. 4. Removed experimental code in oopMap. Note: I did experiments with growableArray optimizations and they bring nothing to the current EA code performance. I filed separate bug to investigate gA optimizations.

EVALUATION See Description.