RFR: 8356869: RISC-V: Improve tail handling of array fill stub

Hamlin Li mli at openjdk.org
Wed May 14 08:14:56 UTC 2025


On Tue, 13 May 2025 19:44:12 GMT, Hamlin Li <mli at openjdk.org> wrote:

>> The tail handling after bulk copy in array fill stub may trigger misaligned memory accesses.
>> The address is 8-byte aligned after bulk copy and the tail handling copies BYTE, SHORT, and
>> INT granules in order. This could trigger misaligned accesses. We should copy the remainings
>> in this order: INT, SHORT, and BYTE to avoid such an issue.
>> 
>> JMH data on P550 SBC for reference (@Param("15") private int size):
>> 
>> Before:
>> Benchmark                 (size)  Mode  Cnt    Score   Error  Units
>> ArrayFill.fillByteArray       15  avgt   12  961.604 ± 1.497  ns/op
>> ArrayFill.fillIntArray        15  avgt   12   29.355 ± 0.024  ns/op
>> ArrayFill.fillShortArray      15  avgt   12  569.499 ± 0.662  ns/op
>> ArrayFill.zeroByteArray       15  avgt   12  957.080 ± 5.358  ns/op
>> ArrayFill.zeroIntArray        15  avgt   12   29.344 ± 0.006  ns/op
>> ArrayFill.zeroShortArray      15  avgt   12  569.730 ± 0.441  ns/op
>> 
>> After:
>> Benchmark                 (size)  Mode  Cnt   Score   Error  Units
>> ArrayFill.fillByteArray       15  avgt   12  32.206 ± 0.005  ns/op
>> ArrayFill.fillIntArray        15  avgt   12  29.347 ± 0.007  ns/op
>> ArrayFill.fillShortArray      15  avgt   12  31.732 ± 0.451  ns/op
>> ArrayFill.zeroByteArray       15  avgt   12  32.208 ± 0.007  ns/op
>> ArrayFill.zeroIntArray        15  avgt   12  29.346 ± 0.007  ns/op
>> ArrayFill.zeroShortArray      15  avgt   12  31.492 ± 0.006  ns/op
>
> Nice catch and fix. Looks good.
> Can you add the test case `@param("15")` and maybe some more to ArrayFill.java?

> @Hamlin-Li Thanks for the review! I have added two sizes to @param. Size = 15 for this case and size = 7 for the case in JDK-8356593.

Thank you for updating. Looks good!

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

PR Comment: https://git.openjdk.org/jdk/pull/25210#issuecomment-2879219627


More information about the hotspot-compiler-dev mailing list