JDK-6488063 : Improve analysis by Bytecode Escape Estimator
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 7
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-10-31
  • Updated: 2013-11-01
  • Resolved: 2006-12-15
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
6u4Fixed 7Fixed hs10Fixed
Currently, the Bytecode Escape Estimator used by escape analysis does
a very conservative analysis.  In particular, it does not track values on the
execution stack across block boundaries or arguments stored to another local
variable.  The analysis should be improved to perform this tracking.

EVALUATION I have improved the Bytecode Escape Estimator to do this tracking. I have also added improved tracking of whether a method returns a newly allocated unescaped object. As part of this work, I needed to improve the block analysis. There are now 3 places where this analysis is done. I have extracted this into a new class ciMethodBlocks which allows the analysis to be shared by all 3 places.