RFR: 8268231: Aarch64: Use ldp in intrinsics for String.compareTo
Wang Huang
whuang at openjdk.java.net
Mon Jul 12 09:14:26 UTC 2021
On Fri, 9 Jul 2021 09:15:18 GMT, Andrew Haley <aph at openjdk.org> wrote:
> I'm quite tempted to approve this. It looks generally better, simpler, and easier to understand than what we have today. However, the improvement isn't great, and I suspect is mostly because of the reduction in traffic between Base and Vector registers.
> What happens if you rewrite `compare_string_16_bytes_same()` to use `ldp` ?
I refacted `compare_string_16_bytes_same()` as a draft, the performance comparision is listed here,
Benchmark |(diff_pos)|(size) | Mode | Cnt | Score| Error | Units
-----------------------------------------------|----------|-------|------|-----|-------|--------|------
StringCompare.compareLLDiffStrings | 7| 128 | avgt | 5 | 4.252|± 0.001 | us/op
StringCompare.compareLLDiffStrings | 15| 128 | avgt | 5 | 4.714|± 0.001 | us/op
StringCompare.compareLLDiffStrings | 31| 128 | avgt | 5 | 6.139|± 0.445 | us/op
StringCompare.compareLLDiffStrings | 47| 128 | avgt | 5 | 13.861|± 0.001 | us/op
StringCompare.compareLLDiffStrings | 63| 128 | avgt | 5 | 8.823|± 0.007 | us/op
StringCompare.compareLLDiffStringsWithLdp | 7| 128 | avgt | 5 | 3.867|± 0.001 | us/op
StringCompare.compareLLDiffStringsWithLdp | 15| 128 | avgt | 5 | 5.571|± 0.756 | us/op
StringCompare.compareLLDiffStringsWithLdp | 31| 128 | avgt | 5 | 5.408|± 0.001 | us/op
StringCompare.compareLLDiffStringsWithLdp | 47| 128 | avgt | 5 | 6.896|± 0.825 | us/op
StringCompare.compareLLDiffStringsWithLdp | 63| 128 | avgt | 5 | 6.787|± 0.001 | us/op
StringCompare.compareLLDiffStringsWithRefactor | 7| 128 | avgt | 5 | 3.481|± 0.001 | us/op
StringCompare.compareLLDiffStringsWithRefactor | 15| 128 | avgt | 5 | 10.023|± 0.012 | us/op
StringCompare.compareLLDiffStringsWithRefactor | 31| 128 | avgt | 5 | 5.627|± 0.017 | us/op
StringCompare.compareLLDiffStringsWithRefactor | 47| 128 | avgt | 5 | 13.369|± 0.544 | us/op
StringCompare.compareLLDiffStringsWithRefactor | 63| 128 | avgt | 5 | 8.382|± 0.988 | us/op
-------------
PR: https://git.openjdk.java.net/jdk/pull/4722
More information about the hotspot-compiler-dev
mailing list