Integrated: 8264020: Optimize double negation elimination

Eric Liu github.com+10482586+therealeliu at openjdk.java.net
Tue Mar 30 10:01:48 UTC 2021


On Sun, 28 Mar 2021 01:36:56 GMT, Eric Liu <github.com+10482586+theRealELiu at openjdk.org> wrote:

> 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

This pull request has now been integrated.

Changeset: f3726a87
Author:    Eric Liu <eric.c.liu at arm.com>
Committer: Ningsheng Jian <njian at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/f3726a87
Stats:     9 lines in 1 file changed: 2 ins; 0 del; 7 mod

8264020: Optimize double negation elimination

Reviewed-by: thartmann, chagedorn

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

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


More information about the hotspot-compiler-dev mailing list