RFR: 8264020: Optimize double negation elimination
Eric Liu
github.com+10482586+therealeliu at openjdk.java.net
Sun Mar 28 01:43:34 UTC 2021
For the double negation '-(-x)', c2 could reduce the redundant 'sub'
through SubNode::Ideal. But every time when 'sub' is removed, there
would generate two useless nodes SubNode(x, 0)[1] and AddNode(x, -0)[2],
which would be removed by later phases but should have optimized better
to 'x' itself without generating those new stuffs.
This patch is a small fix for SubNode's Ideal, by leaving this special
case to 'Identity' which handled double negation already[3].
[1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/subnode.cpp#L238
[2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/subnode.cpp#L181
[3] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/subnode.cpp#L55
-------------
Commit messages:
- 8264020: Optimize double negation elimination
Changes: https://git.openjdk.java.net/jdk/pull/3231/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3231&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8264020
Stats: 5 lines in 1 file changed: 0 ins; 0 del; 5 mod
Patch: https://git.openjdk.java.net/jdk/pull/3231.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3231/head:pull/3231
PR: https://git.openjdk.java.net/jdk/pull/3231
More information about the hotspot-compiler-dev
mailing list