RFR: 8332603: [PPC64] Improve itable_stub [v4]

Martin Doerr mdoerr at openjdk.org
Fri Jun 21 19:05:12 UTC 2024


On Fri, 21 Jun 2024 18:00:30 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:

>> PPC Port similar to [JDK-8305959 (x86)](https://bugs.openjdk.org/browse/JDK-8305959) and [JDK-8307352(aarch64)](https://bugs.openjdk.org/browse/JDK-8307352)
>
> Amit Kumar has updated the pull request incrementally with one additional commit since the last revision:
> 
>   updates copyright header

Thanks! I'm convinced that it is correct, but the performance seems to be slightly better without this patch:

Without patch (measured on linux ppc64le Power10):

Benchmark                        Mode  Cnt   Score   Error  Units
InterfaceCalls.test1stInt2Types  avgt   12  15.298 ± 0.162  ns/op
InterfaceCalls.test1stInt3Types  avgt   12  19.570 ± 0.324  ns/op
InterfaceCalls.test1stInt5Types  avgt   12  19.464 ± 0.353  ns/op
InterfaceCalls.test2ndInt2Types  avgt   12  15.066 ± 0.078  ns/op
InterfaceCalls.test2ndInt3Types  avgt   12  19.347 ± 0.292  ns/op
InterfaceCalls.test2ndInt5Types  avgt   12  20.407 ± 2.015  ns/op
InterfaceCalls.testIfaceCall     avgt   12  19.268 ± 0.134  ns/op
InterfaceCalls.testIfaceExtCall  avgt   12  19.890 ± 0.103  ns/op
InterfaceCalls.testMonomorphic   avgt   12  12.382 ± 0.081  ns/op


With patch:

Benchmark                        Mode  Cnt   Score   Error  Units
InterfaceCalls.test1stInt2Types  avgt   12  15.752 ± 0.472  ns/op
InterfaceCalls.test1stInt3Types  avgt   12  20.207 ± 0.307  ns/op
InterfaceCalls.test1stInt5Types  avgt   12  20.070 ± 0.387  ns/op
InterfaceCalls.test2ndInt2Types  avgt   12  15.692 ± 0.189  ns/op
InterfaceCalls.test2ndInt3Types  avgt   12  20.770 ± 0.598  ns/op
InterfaceCalls.test2ndInt5Types  avgt   12  20.482 ± 0.242  ns/op
InterfaceCalls.testIfaceCall     avgt   12  19.963 ± 0.344  ns/op
InterfaceCalls.testIfaceExtCall  avgt   12  20.165 ± 0.559  ns/op
InterfaceCalls.testMonomorphic   avgt   12  12.400 ± 0.083  ns/op


I'm sorry to say this, but this change should not get integrated without improving performance which is the whole reason why it was done. I guess the old code uses slightly better instruction sequences which more than compensate the overhead of iterating twice.

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

PR Comment: https://git.openjdk.org/jdk/pull/19733#issuecomment-2183301144


More information about the hotspot-dev mailing list