RFR: 8314452: Explicitly indicate inlining success/failure in PrintInlining [v3]
Jorn Vernee
jvernee at openjdk.org
Thu Sep 7 10:40:13 UTC 2023
On Thu, 7 Sep 2023 09:38:51 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
>> test/hotspot/jtreg/compiler/inlining/ResolvedClassTest.java line 128:
>>
>>> 126: analyzer.shouldHaveExitValue(0);
>>> 127:
>>> 128: analyzer.shouldNotMatch("java\\.lang\\.invoke\\..+::linkToTargetMethod \\(9 bytes\\) not inlineable");
>>
>> This needs `failed to inline: ` too, right? Maybe we want to sweep tests for the common inlining failure messages and put `failed to inline:` in relevant tests.
>
>> This needs failed to inline: too, right?
>
> Hmm right, there are probably some tests looking for inlining failures that are now trivially passing, since the inlining message changed.
>
>> Maybe we want to sweep tests for the common inlining failure messages and put failed to inline: in relevant tests.
>
> Okay, I'll have another look.
I did a sweep through the hotspot code to try and find all inlining failure messages. Then I looked through `./test/hotspot/jtreg/compiler` for these messages, to see if any test was referencing them. I did find a few and fixed them. I also found one (`TestConflictInlineCommands`) that looked for a failure message alone. I've left that one as is, since I think it still works as intended.
I looked for all of the following strings:
- `not inlineable`
- `no static binding`
- `disallowed by ciReplay`
- `unloaded signature classes`
- `inlining too deep`
- `disallowed by CompileCommand`
- `virtual call`
- `many throws`
- `already compiled into a medium method`
- `hot method too big`
- `too big`
- `don't inline by annotation`
- `native method`
- `abstract method`
- `cannot be parsed`
- `intrinsic method inlining disabled`
- `inlining prohibited by policy`
- `callee has exception handlers`
- `callee is synchronized`
- `callee's klass not linked yet`
- `callee's klass not initialized yet`
- `callee's monitors do not match`
- `jsrs not handled properly by inliner yet`
- `mdo allocation failed`
- `receiver is always null`
- `MaxForceInlineLevel`
- `recursive inlining too deep`
- `callee is too large`
- `callee uses too much stack`
- `don't inline Throwable constructors`
- `total inlining greater than DesiredMethodLimit`
- `signatures mismatch`
- `not static or statically bindable`
- `receiver not constant`
- `MemberName not constant`
- `native call`
- `method holder not initialized`
- `method changes current thread`
- `already compiled into a big method`
- `exception method`
- `never executed`
- `low call site frequency`
- `size > DesiredMethodLimit`
- `NodeCountInliningCutoff`
- `call site not reached`
- `not an accessor`
- `failed initial checks`
- `too cold to inline`
- `failed to generate predicate for intrinsic`
- `method not annotated`
- `failed to inline (intrinsic, virtual)`
- `failed to inline (intrinsic)`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15315#discussion_r1318415759
More information about the hotspot-compiler-dev
mailing list