RFR: 8256438: AArch64: Implement match rules with ROR shift register value [v3]
Eric Liu
github.com+10482586+therealeliu at openjdk.java.net
Mon Feb 1 11:20:20 UTC 2021
> This patch transforms '(x >>> rshift) + (x << lshift)' into
> 'RotateRight(x, rshift)' during GVN phase when both the shift exponents
> are constants and their sum equals to the number of bits for the type
> of shift base.
>
> This patch implements some new match rules for AArch64 instructions
> which can take ROR as the optional shift. Such instructions are 'and',
> 'or', 'eor', 'eon', 'bic' and 'orn'.
>
> ror w11, w2, #5
> eor w0, w1, w11
>
> With this patch, above code could be optimized to below:
>
> eor w0, w1, w2, ror #5
>
> Finally, the patch refactors TestRotate.java[1][2].
>
> Tested jtreg TestRotate.java, hotspot::hotspot_all_no_apps,
> jdk::jdk_core, langtools::tier1.
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8252776
> [2] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-September/039911.html
Eric Liu has updated the pull request incrementally with one additional commit since the last revision:
Add benchmark test
Change-Id: I63ca51d06070a07e5c20daf4b42d2c8d7237a1da
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/1858/files
- new: https://git.openjdk.java.net/jdk/pull/1858/files/afc68c27..492f4ca4
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1858&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1858&range=01-02
Stats: 110 lines in 3 files changed: 108 ins; 0 del; 2 mod
Patch: https://git.openjdk.java.net/jdk/pull/1858.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1858/head:pull/1858
PR: https://git.openjdk.java.net/jdk/pull/1858
More information about the hotspot-compiler-dev
mailing list