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