RFR: JDK-8141634 Implement VarHandles/Unsafe intrinsics on SPARC
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Aug 2 23:42:04 UTC 2016
Looks good. Our group will sponsor it.
Thanks,
Vladimir
On 7/29/16 1:37 AM, Trevor Watson wrote:
> Summary:
>
> SPARC assembler implementations of the compareAndExchange* intrinsics and the addition of the WeakCompareAndSwap* matchers.
>
> Have successfully run the 'gmake test' target and the benchmarks mentioned in the bug report.
>
> Benchmarks for the compareAndExchange* intrinsic operations now show an approximate 9x-20x improvement:
>
> Before:
> Benchmark Mode Cnt Score Error Units
> caeAcquire.IntTest.varHandle avgt 15 351.933 ? 7.161 ns/op
> caeAcquire.LongTest.varHandle avgt 15 435.872 ? 3.129 ns/op
> caeAcquire.ObjectTest.varHandle avgt 15 975.728 ? 88.362 ns/op
> caeRelease.IntTest.varHandle avgt 15 346.391 ? 2.798 ns/op
> caeRelease.LongTest.varHandle avgt 15 439.734 ? 9.739 ns/op
> caeRelease.ObjectTest.varHandle avgt 15 934.279 ? 19.454 ns/op
> caeVolatile.IntTest.varHandle avgt 15 346.076 ? 1.771 ns/op
> caeVolatile.LongTest.varHandle avgt 15 436.788 ? 1.825 ns/op
> caeVolatile.ObjectTest.varHandle avgt 15 935.250 ? 59.526 ns/op
>
> With new intrinsic implementation:
> caeAcquire.IntTest.varHandle avgt 15 38.514 ? 0.974 ns/op
> caeAcquire.LongTest.varHandle avgt 15 38.411 ? 0.359 ns/op
> caeAcquire.ObjectTest.varHandle avgt 15 42.616 ? 0.916 ns/op
> caeRelease.IntTest.varHandle avgt 15 38.235 ? 0.185 ns/op
> caeRelease.LongTest.varHandle avgt 15 38.165 ? 0.145 ns/op
> caeRelease.ObjectTest.varHandle avgt 15 42.320 ? 0.156 ns/op
> caeVolatile.IntTest.varHandle avgt 15 38.321 ? 0.221 ns/op
> caeVolatile.LongTest.varHandle avgt 15 38.270 ? 0.198 ns/op
> caeVolatile.ObjectTest.varHandle avgt 15 42.541 ? 0.720 ns/op
>
>
> Webrev: http://cr.openjdk.java.net/~alanbur/JDK-8141634/
> Bug link: https://bugs.openjdk.java.net/browse/JDK-8141634
More information about the hotspot-dev
mailing list