RFR: 8263125: During deoptimization vectors should reassign scalarized payload after all objects are reallocated. [v3]

Vladimir Kozlov kvn at openjdk.java.net
Fri Mar 12 08:57:34 UTC 2021


> 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).

Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision:

  Update methods names and refactor VectorSupport::allocate_vector_payload().

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/2924/files
  - new: https://git.openjdk.java.net/jdk/pull/2924/files/2eb0b82d..c24793fd

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2924&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2924&range=01-02

  Stats: 32 lines in 3 files changed: 13 ins; 2 del; 17 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2924.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2924/head:pull/2924

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


More information about the hotspot-compiler-dev mailing list