Request for reviews (S): 6680665: bytecode Escape Analyzer produces incorrect escape information for methods without oop arguments
Vladimir.Kozlov at Sun.COM
Wed Mar 26 17:35:24 PDT 2008
I want this for HS12 (if approved).
Fixed 6680665: bytecode Escape Analyzer produces incorrect escape information for methods without oop arguments
bcEscapeAnalyzer does not analyze methods with no oop arguments.
If such method returns an object bcEscapeAnalyzer always says
that an object is new non-escaping allocated object.
In the failed test cases the methods are accessors for a static
fields oop (which obviously global escape). And the caller method
has synchronization on this field. But during compilation locks
were removed since EA says the returned object does not escape.
Also bcEscapeAnalyzer doesn't save all escape information in MDO.
As result sequential calls to bcEscapeAnalyzer for the same method
will return incorrect information even when the original was correct.
Use pessimistic escape information for methods which were not analyzed.
Analyze methods which returns oop. Save all escape information in MDO.
Also I moved duplicated dump code to BCEscapeAnalyzer::dump().
Fix verified (y/n): y, failed test cases.
More information about the hotspot-compiler-dev