Request for reviews first part EA update (M): 6667605, 6667610, 6667612, 6667615, 6667620

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Wed Mar 5 09:47:14 PST 2008


The changes passed JPRT with EA on.

Also I was concern about 6667605 when constructors
are inlinined even when they were called only one time.
I ran refworkload and there is no regression.
Note, that without this we lose about half cases in jbb,
and monte_carlo, of cause.

Thanks,
Vladimir

Vladimir Kozlov wrote:
> Here are first changes for Escape Analysis.
> This is a preparation for the EA scalar replacement optimization
> and problems fixes.
> 
> It passed PRT with EA switched off (current default).
> I will run tonight with EA on.
> 
> Thanks,
> Vladimir
> 
> -------------------------------------------------------------------------------------------- 
> 
> http://webrev.invokedynamic.info/kvn/6667605/index.html
> 
> Fixed 6667605: Escape Analysis: always inline java constructors with EA
> 
> Problem:
> A java constructor should be inlined to scalar replace the allocation 
> with EA.
> 
> Solution:
> Inline Java constructors when EA is on.
> Also replace duplicated code in PhaseGVN::transform() with the call
> to transform_no_reclaim(n) (I want to do this for several years already 
> :) ).
> 
> -------------------------------------------------------------------------------------------- 
> 
> http://webrev.invokedynamic.info/kvn/6667610/index.html
> 
> Fixed 6667610: Escape Analysis: retry compilation without EA if it fails
> 
> Problem:
> During split unique types EA could exceed nodes limit and fail the 
> method compilation.
> 
> Solution:
> Retry the compilation without EA.
> 
> -------------------------------------------------------------------------------------------- 
> 
> http://webrev.invokedynamic.info/kvn/6667612/index.html
> 
> Fixed 6667612: Escape Analysis: disable loop cloning if it has a scalar 
> replaceable allocation
> 
> Problem:
> Cloning an allocation will not allow scalar replacement since memory 
> operations
> could not be associated with one allocation, the unique type data is 
> invalid
> after such cloning.
> 
> Solution:
> Do not clone a loop with a scalar replaceable allocation
> Also use 1 instead of 'true' for bitfields assignment.
> 
> -------------------------------------------------------------------------------------------- 
> 
> http://webrev.invokedynamic.info/kvn/6667615/index.html
> 
> Fixed 6667615: Escape Analysis: extend MDO to cache arguments escape state
> 
> Problem:
> EA uses byte code escape analyzer to determine the escape state of 
> allocations passed
> as arguments to a not inlined call. bcEscapeAnalyzer looks recursively 
> on the method's
> bytecode and bytecode of called methods. It is expensive to do this in 
> each call site.
> 
> Solution:
> Use MDO to cache arguments escape state.
> 
> -------------------------------------------------------------------------------------------- 
> 
> http://webrev.invokedynamic.info/kvn/6667620/index.html
> 
> Fixed 6667620: Escape Analysis: fix deoptimization for scalar replaced 
> objects
> 
> Problem:
> Deoptimization code for reallocation and relocking
> scalar replaced objects has to be fixed.




More information about the hotspot-compiler-dev mailing list