Integrated: 8273454: C2: Transform (-a)*(-b) into a*b

Zhengyu Gu zgu at openjdk.java.net
Sat Sep 18 23:14:06 UTC 2021


On Tue, 7 Sep 2021 22:40:50 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:

> The transformation reduce instructions in generated code.
> 
> ### x86_64:
> 
> Before:
> ```  
>   0x00007fb92c78b3ac:   neg    %esi
>   0x00007fb92c78b3ae:   neg    %edx
>   0x00007fb92c78b3b0:   mov    %esi,%eax
>   0x00007fb92c78b3b2:   imul   %edx,%eax                    ;*imul {reexecute=0 rethrow=0 return_oop=0}
>                                                             ; - TestSub::runSub at 4 (line 9)
> 
> After:
> 
>                                                            ; - TestSub::runSub at -1 (line 9)
>   0x00007fc8c05b74ac:   mov    %esi,%eax
>   0x00007fc8c05b74ae:   imul   %edx,%eax                    ;*imul {reexecute=0 rethrow=0 return_oop=0}
>                                                             ; - TestSub::runSub at 4 (line 9)
> 
> 
> 
> ### AArch64:
> Before:
> 
>  0x0000ffff814b4a70:   neg     w11, w1
>  0x0000ffff814b4a74:   mneg    w0, w2, w11                 ;*imul {reexecute=0 rethrow=0 return_oop=0}
>                                                             ; - TestSub::runSub at 4 (line 9)
> 
> 
> After:
> 
>  0x0000ffff794a67f0:   mul     w0, w1, w2                  ;*imul {reexecute=0 rethrow=0 return_oop=0}
>                                                             ; - TestSub::runSub at 4 (line 9)

This pull request has now been integrated.

Changeset: 7c9868c0
Author:    Zhengyu Gu <zgu at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/7c9868c0b3c9bd3d305e71f91596190813cdccce
Stats:     120 lines in 2 files changed: 119 ins; 0 del; 1 mod

8273454: C2: Transform (-a)*(-b) into a*b

Reviewed-by: thartmann, eliu, chagedorn

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

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


More information about the hotspot-compiler-dev mailing list