RFR: 8335843: C2 hits assert(_print_inlining_stream->size() > 0) failed: missing inlining msg

Roland Westrelin roland at openjdk.org
Fri Jul 19 07:31:39 UTC 2024


On Fri, 19 Jul 2024 07:25:31 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

>> This is similar to 8327741 but for method handle calls. When a method
>> handle call can be resolved late so it can't be inlined but the target
>> of the call is changed, no new inlining message is produced. The fix I
>> propose is similar to the fix for 8327741. I also made a small change
>> to the fix for 8327741 so `PrintInlining` now reports the resolved
>> method. With:
>> 
>> 
>>     static class A {
>>         void m() {
>> 
>>         }
>>     }
>> 
>>     static class B extends A {
>>         void m() {
>> 
>>         }
>>     }
>> 
>> 
>> If the virtual call to `A.m()` is resolved to a call to
>> `B.m()`. Before this change, the `PrintInlining` output reports a call
>> to `A.m()` and now it reports the actual target `B.m()`.
>
> All tests passed.

@TobiHartmann @vnkozlov @iwanowww thanks for the reviews (and testing).

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

PR Comment: https://git.openjdk.org/jdk/pull/20230#issuecomment-2238546636


More information about the hotspot-compiler-dev mailing list