Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
8264020: Optimize double negation elimination
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 Change-Id: I5597e43001a4593b32b1bb25d4a4bef0ba1bcc09
- Loading branch information