RFR: 8273454: C2: Transform (-a)*(-b) into a*b
Zhengyu Gu
zgu at openjdk.java.net
Tue Sep 7 22:48:29 UTC 2021
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)
-------------
Commit messages:
- Merge branch 'master' into JDK-8273454-neg-mul
- v1
- v0
Changes: https://git.openjdk.java.net/jdk/pull/5403/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5403&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8273454
Stats: 112 lines in 2 files changed: 112 ins; 0 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/5403.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/5403/head:pull/5403
PR: https://git.openjdk.java.net/jdk/pull/5403
More information about the hotspot-compiler-dev
mailing list