RFR: 8279947: Remove two redundant gvn.transform calls in Parse::do_one_bytecode()

Vladimir Kozlov kvn at openjdk.java.net
Thu Jan 13 18:21:26 UTC 2022


On Thu, 13 Jan 2022 06:23:55 GMT, Jie Fu <jiefu at openjdk.org> wrote:

> But how precision_rounding() can be replaced with transform() ?

`precision_rounding()` calls `transform()` for 32-bit and SSE==0 (FPU):
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/graphKit.cpp#L2363
JDK-4416902 fix excludes creating `RoundFloatNode` but left `transform()`. And that is why I said "it was not necessary" because, as you correctly pointed, there is already `transform()` call for `_l2f` bytecode.

I am simply trying to prove that your change to remove second `transform()` is correct.

> I tested the patch on Linux/x86_32, no regression.

You need to tests 32-bit with `-XX:UseSSE=0 -XX:UseAVX=0` to trigger this code path and code generation.

I will run our testing (64-bit only) as well.

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

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


More information about the hotspot-compiler-dev mailing list