RFR: 8270366: C2: Add associative rule to add/sub node
Zhengyu Gu
zgu at openjdk.java.net
Tue Jul 13 12:31:14 UTC 2021
Please review this small patch that add associative rule to add/sub node, that eliminates a multiply instruction.
e.g.
private static int assocInt(int a, int b, int c) {
return a * c + b * c;
}
x86_64:
Before:
0x00007fda1506152c: imul %ecx,%esi
0x00007fda1506152f: imul %ecx,%edx
0x00007fda15061532: mov %esi,%eax
0x00007fda15061534: add %edx,%eax ;*iadd {reexecute=0 rethrow=0 return_oop=0}
; - TestAssoc::assocInt at 6 (line 9)
After:
0x00007fc1c078d52c: add %edx,%esi
0x00007fc1c078d52e: mov %ecx,%eax
0x00007fc1c078d530: imul %esi,%eax ;*iadd {reexecute=0 rethrow=0 return_oop=0}
; - TestAssoc::assocInt at 6 (line 9)
-------------
Commit messages:
- sub
- add
Changes: https://git.openjdk.java.net/jdk/pull/4765/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4765&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8270366
Stats: 68 lines in 2 files changed: 68 ins; 0 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/4765.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/4765/head:pull/4765
PR: https://git.openjdk.java.net/jdk/pull/4765
More information about the hotspot-compiler-dev
mailing list