Integrated: 8263125: During deoptimization vectors should reassign scalarized payload after all objects are reallocated.

Vladimir Kozlov kvn at openjdk.java.net
Fri Mar 12 17:03:08 UTC 2021


On Wed, 10 Mar 2021 19:58:22 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> Currently during deoptimization Vector's `payload` field values are restored during Vector reallocation: 
> https://github.com/openjdk/jdk/blob/master/src/hotspot/share/prims/vectorSupport.cpp#L155 
> 
> But for scalar-replaced values this is not correct because payload box object could be re-allocated after allocation of this vector. Scalar-replaced `payload` should be restored during regular fields reassignment (`Deoptimization::reassign_fields()` change).
> 
> I renamed incorrect `eliminate_*` names for methods which restore/reallocate objects and locks.
> 
> I added checks for EliminateAutoBox and EnableVectorAggressiveReboxing optimizations which can replace allocations with scalar objects independent from Escape Analysis. 
>  
> I added prints for unexpected StackValue values (stackValue.cpp) and for Vector debug info location type (location.cpp).

This pull request has now been integrated.

Changeset: a6e056fd
Author:    Vladimir Kozlov <kvn at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/a6e056fd
Stats:     61 lines in 5 files changed: 33 ins; 6 del; 22 mod

8263125: During deoptimization vectors should reassign scalarized payload after all objects are reallocated.

Reviewed-by: vlivanov, rrich

-------------

PR: https://git.openjdk.java.net/jdk/pull/2924


More information about the hotspot-dev mailing list