RFR: 8360520: RISC-V: C1: Fix primitive array clone intrinsic regression after JDK-8333154 [v4]

Feilong Jiang fjiang at openjdk.org
Fri Jul 11 11:50:36 UTC 2025


On Thu, 10 Jul 2025 22:42:44 GMT, Dean Long <dlong at openjdk.org> wrote:

>> Feilong Jiang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
>> 
>>  - Merge branch 'master' of https://github.com/openjdk/jdk into riscv-fix-c1-primitive-clone
>>  - Merge branch 'master' of https://github.com/openjdk/jdk into riscv-fix-c1-primitive-clone
>>  - Revert RISCV Macro modification
>>  - Merge branch 'master' of https://github.com/openjdk/jdk into riscv-fix-c1-primitive-clone
>>  - check unaligned flag at LIR_OpArrayCopy to avoid using AvoidUnalignedAccesses
>>  - riscv: fix c1 primitive array clone intrinsic regression
>
> src/hotspot/share/c1/c1_LIR.cpp line 353:
> 
>> 351:   , _expected_type(expected_type)
>> 352:   , _flags(flags) {
>> 353: #if defined(X86) || defined(AARCH64) || defined(S390) || defined(RISCV64) || defined(PPC64)
> 
> Do we still need this #if?  It would be nice if we can eventually remove it, but I guess arm32 support is missing.

You are right, ARM32 support is not available, so we have to keep these platform guards for now.

> src/hotspot/share/c1/c1_LIR.cpp line 354:
> 
>> 352:   , _flags(flags) {
>> 353: #if defined(X86) || defined(AARCH64) || defined(S390) || defined(RISCV64) || defined(PPC64)
>> 354:   if (expected_type != nullptr && ((flags & ~LIR_OpArrayCopy::unaligned) == 0)) {
> 
> I was concerned that this is platform-specific, but I checked and all platforms can handle unaligned or overlapping w/o using the stub.  So maybe this should be using LIR_OpArrayCopy::unaligned|LIR_OpArrayCopy::overlapping?

Yes, LIR_OpArrayCopy::overlapping was also reset if `OmitChecksFlag` is true. Added  `LIR_OpArrayCopy::overlapping` too.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25976#discussion_r2200508522
PR Review Comment: https://git.openjdk.org/jdk/pull/25976#discussion_r2200507132


More information about the hotspot-compiler-dev mailing list