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

Jie Fu jiefu at openjdk.java.net
Thu Jan 13 23:25:28 UTC 2022


On Thu, 13 Jan 2022 18:18:30 GMT, Vladimir Kozlov <kvn 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.

Got it.
Thanks @vnkozlov for your kind explanation.

> > 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.

I will run `-XX:UseSSE=0 -XX:UseAVX=0` on Linux/x86_32 and feedback here.
Thanks.

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

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


More information about the hotspot-compiler-dev mailing list