RFR: 8302814: Delete unused CountLoopEnd instruct with CmpX [v3]

SUN Guoyun duke at openjdk.org
Fri Feb 24 05:32:20 UTC 2023


On Thu, 23 Feb 2023 18:30:31 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> Also I think it is not correct to remove `CmpU` case. There are IGVN transformations which convert `CmpI` to `CmpU`: https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/subnode.cpp#L1632

Maybe it only for range check. see:

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 
V  [libjvm.so+0x1867734]  BoolNode::Ideal(PhaseGVN*, bool)+0xb84  (subnode.cpp:1631)
V  [libjvm.so+0x1567f65]  PhaseGVN::transform_no_reclaim(Node*)+0x25  (phaseX.cpp:840)
V  [libjvm.so+0x124b4f5]  LibraryCallKit::generate_limit_guard(Node*, Node*, Node*, RegionNode*)+0x145  (library_call.cpp:891)
V  [libjvm.so+0x122085a]  LibraryCallKit::generate_string_range_check(Node*, Node*, Node*, bool)+0xea  (library_call.cpp:912)
V  [libjvm.so+0x12340c3]  LibraryCallKit::inline_string_copy(bool)+0x203  (library_call.cpp:1403)
V  [libjvm.so+0x1248ee4]  LibraryIntrinsic::generate(JVMState*)+0x3d4  (library_call.cpp:116)

> What about `jmpLoopEndUCF*` instructions?

Thanks @vnkozlov for the reminder, I think `jmpLoopEndUCF*` is unused also.

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

PR: https://git.openjdk.org/jdk/pull/12648


More information about the hotspot-compiler-dev mailing list