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