RFR: 8370939: C2: SIGSEGV in SafePointNode::verify_input when processing MH call from Compile::process_late_inline_calls_no_inline() [v6]

Vladimir Ivanov vlivanov at openjdk.org
Fri Nov 21 23:46:09 UTC 2025


On Fri, 21 Nov 2025 22:53:45 GMT, Dean Long <dlong at openjdk.org> wrote:

> I don't see why we need _has_mh_late_inlines at all. During parse, we can just check _late_inlines.length() == 0, right?

`_has_mh_late_inlines` and `_late_inlines.length() == 0` are not equivalent. A MH late inline candidate is not placed on `_late_inlines` unless it is eligible for inlining.

But now I see a slight change in behavior in the following part of `Compile::Compile`: 

    if (_late_inlines.length() == 0 && !has_mh_late_inlines() && !failing() && has_stringbuilder()) {
      inline_string_calls(true);
    }


After `dec_number_of_mh_late_inlines()` is gone, `inline_string_calls()` won't be called during parsing if any MH late inline calls are observed irrespective of whether they are all inlined by that point or not. 

Roland, do you see any problem with it?

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

PR Comment: https://git.openjdk.org/jdk/pull/28088#issuecomment-3565004490


More information about the hotspot-compiler-dev mailing list