Re: RFR: 8256438: AArch64: Implement match rules with ROR shift register value [v4]

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: RFR: 8256438: AArch64: Implement match rules with ROR shift register value [v4]

Eric Liu-2
> 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 null check
 
  Change-Id: I18dda4a01154bce72fd4025685fa0721263092ce

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1858/files
  - new: https://git.openjdk.java.net/jdk/pull/1858/files/492f4ca4..93577236

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1858&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1858&range=02-03

  Stats: 22 lines in 1 file changed: 4 ins; 0 del; 18 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
Reply | Threaded
Open this post in threaded view
|

Re: RFR: 8256438: AArch64: Implement match rules with ROR shift register value [v4]

Roland Westrelin-4
On Tue, 23 Feb 2021 08:24:58 GMT, Eric Liu <[hidden email]> wrote:

>> 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 null check
>  
>   Change-Id: I18dda4a01154bce72fd4025685fa0721263092ce

Shared code looks good to me.

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

Marked as reviewed by roland (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/1858
Reply | Threaded
Open this post in threaded view
|

Re: RFR: 8256438: AArch64: Implement match rules with ROR shift register value [v4]

Eric Liu-2
On Tue, 23 Feb 2021 08:46:10 GMT, Roland Westrelin <[hidden email]> wrote:

>> Eric Liu has updated the pull request incrementally with one additional commit since the last revision:
>>
>>   Add null check
>>  
>>   Change-Id: I18dda4a01154bce72fd4025685fa0721263092ce
>
> Shared code looks good to me.

Thanks for your review. I will integrate it after some tests were finished.

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

PR: https://git.openjdk.java.net/jdk/pull/1858