Integrated: 8332670: C1 clone intrinsic needs memory barriers

Galder Zamarreño galder at openjdk.org
Thu Jun 6 15:04:52 UTC 2024


On Tue, 4 Jun 2024 08:10:59 GMT, Galder Zamarreño <galder at openjdk.org> wrote:

> Adds a storestore barrier after copying the contents in the primitive array intrinsic (credit @shipilev). The barrier is a no-op in platforms where not needed so no need for an ifdef.
> 
> The barrier after new array creation is only added if zeroing the array on aarch64 (credit @dean-long). Since the primitive array clone intrinsic does not zero the array, that means there's a single barrier added for this use case.
> 
> There's no barrier added on x86 c1 macro assembler for nothing to do there. 
> 
> I've run the following tests:
> * tier 1 on darwin/aarch64
> * tier 1 on linux/x86_64
> * `hotspot_compiler` tests on darwin/aarch64
> * `copy.clone.arrays` jcstress tests on darwin/aarch64.
> 
> I tried but was unable to create a standalone test for the jdk source tree that would fail.
> 
> FYI @bulasevich @TheRealMDoerr @RealFYang @RealLucy similar platform specific c1 macro assembler changes might be required for other platforms.

This pull request has now been integrated.

Changeset: 606df441
Author:    Galder Zamarreño <galder at openjdk.org>
Committer: Martin Doerr <mdoerr at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/606df441410a69034b4c113e85ce21937d1a0808
Stats:     1 line in 1 file changed: 1 ins; 0 del; 0 mod

8332670: C1 clone intrinsic needs memory barriers

Reviewed-by: shade, thartmann, aph

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

PR: https://git.openjdk.org/jdk/pull/19538


More information about the hotspot-compiler-dev mailing list