RFR: 8377225: RISC-V: Improve receiver type profiling reliability [v2]

Feilong Jiang fjiang at openjdk.org
Mon Feb 9 21:38:55 UTC 2026


On Mon, 9 Feb 2026 11:50:53 GMT, Anjian Wen <wenanjian at openjdk.org> wrote:

>> Same as JDK-8357258, this patch try to improve the receiver type profile reliability in riscv.
>> 
>> Functional Testing: tier1 Passed
>> Performance Testing: no regression
>> 
>> 
>> # Baseline
>> Benchmark                        (randomized)  Mode  Cnt   Score   Error  Units
>> InterfaceCalls.test1stInt2Types         false  avgt   12   9.371 ± 0.007  ns/op
>> InterfaceCalls.test1stInt2Types          true  avgt   12  14.168 ± 0.025  ns/op
>> InterfaceCalls.test1stInt3Types         false  avgt   12  38.390 ± 0.261  ns/op
>> InterfaceCalls.test1stInt3Types          true  avgt   12  39.634 ± 0.122  ns/op
>> InterfaceCalls.test1stInt5Types         false  avgt   12  40.960 ± 1.909  ns/op
>> InterfaceCalls.test1stInt5Types          true  avgt   12  41.235 ± 0.126  ns/op
>> InterfaceCalls.test2ndInt2Types         false  avgt   12  10.227 ± 0.333  ns/op
>> InterfaceCalls.test2ndInt2Types          true  avgt   12  14.657 ± 0.049  ns/op
>> InterfaceCalls.test2ndInt3Types         false  avgt   12  42.756 ± 0.563  ns/op
>> InterfaceCalls.test2ndInt3Types          true  avgt   12  50.112 ± 0.302  ns/op
>> InterfaceCalls.test2ndInt5Types         false  avgt   12  59.637 ± 1.900  ns/op
>> InterfaceCalls.test2ndInt5Types          true  avgt   12  56.992 ± 0.162  ns/op
>> InterfaceCalls.testIfaceCall            false  avgt   12  38.731 ± 0.749  ns/op
>> InterfaceCalls.testIfaceCall             true  avgt   12  38.218 ± 0.283  ns/op
>> InterfaceCalls.testIfaceExtCall         false  avgt   12  41.505 ± 3.659  ns/op
>> InterfaceCalls.testIfaceExtCall          true  avgt   12  39.611 ± 0.483  ns/op
>> InterfaceCalls.testMonomorphic          false  avgt   12   8.476 ± 0.011  ns/op
>> InterfaceCalls.testMonomorphic           true  avgt   12   8.475 ± 0.007  ns/op
>> 
>> # With Patch
>> Benchmark                        (randomized)  Mode  Cnt   Score   Error  Units
>> InterfaceCalls.test1stInt2Types         false  avgt   12   9.804 ± 0.401  ns/op
>> InterfaceCalls.test1stInt2Types          true  avgt   12  14.171 ± 0.029  ns/op
>> InterfaceCalls.test1stInt3Types         false  avgt   12  38.793 ± 0.677  ns/op
>> InterfaceCalls.test1stInt3Types          true  avgt   12  39.498 ± 0.351  ns/op
>> InterfaceCalls.test1stInt5Types         false  avgt   12  40.916 ± 0.771  ns/op
>> InterfaceCalls.test1stInt5Types          true  avgt   12  41.705 ± 1.356  ns/op
>> InterfaceCalls.test2ndInt2Types         false  avgt   12  10.222 ± 0.340  ns/op
>> InterfaceCalls.test2ndInt2Types          true  avgt   12  14.659 ± 0.033  n...
>
> Anjian Wen has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - update some function format
>  - update commit again
>  - update some comments

Looks good! One nit:

Marked as reviewed by fjiang (Committer).

src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp line 1531:

> 1529:       // statically update the MethodData* rather than needing to do
> 1530:       // dynamic tests on the receiver type
> 1531:       // NOTE: we should probably put a lock around this search to

Should we update these comments?

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

PR Review: https://git.openjdk.org/jdk/pull/29310#pullrequestreview-3770765609
PR Review: https://git.openjdk.org/jdk/pull/29310#pullrequestreview-3771006550
PR Review Comment: https://git.openjdk.org/jdk/pull/29310#discussion_r2780182224


More information about the hotspot-dev mailing list