RFR: 8324050: Issue store-store barrier after re-materializing objects during deoptimization

Quan Anh Mai qamai at openjdk.org
Sat Jan 20 18:42:26 UTC 2024


On Fri, 19 Jan 2024 22:00:15 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> Added missing store-store barrier when we re-materialize scalar replaced object during deoptimization.
> 
> I also removed redundant `#if COMPILER2_OR_JVMCI` guards which were leftover from [JDK-8312579](https://bugs.openjdk.org/browse/JDK-8312579) changes. It added Vector API support to Graal and changed `#ifdef COMPILER2` to these `#if`. But this code is already under these `ifs`.
> 
> Tested tier1-3, scope, stress.
> 
> No new regression test.  I think it is "almost" impossible to hit this issue because there is a lot of VM's runtime code between the code which rematerialize scalar-replaced objects during deoptimization and a code in Interpreter which is executed after deoptimization and which may execute a store instruction that makes these objects accessible by other threads.

This seems similar to [a recent discussion](https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2024-January/071521.html). There, it is decided that a release barrier would be safer. Should we do it similarly here? Thanks.

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

PR Comment: https://git.openjdk.org/jdk/pull/17503#issuecomment-1902236204


More information about the hotspot-dev mailing list