RFR: 8300002: Performance regression caused by non-inlined hot methods due to post call noop instructions [v5]

Tobias Hartmann thartmann at openjdk.org
Mon Jan 16 07:35:11 UTC 2023


On Fri, 13 Jan 2023 19:16:04 GMT, Sergey Kuksenko <skuksenko at openjdk.org> wrote:

> I thought about it.
The issue is naming. "instructions_size" says nothing about the fact that nop instructions were excluded.
On the other side using "inline_instructions_size" in ciMethod::has_compiled_code() looks weird.
I am open to any suggestions.

I think this is just a matter of how we define "instruction size". We could simply define it as not including oops. I would prefer to rename the existing usages to `inline_instructions_size` though. `ciMethod::has_compiled_code()` is only used in the context of "should (not) inline", we could rename it as well. 

I see that Vladimir suggested the same. @vnkozlov, regarding 

> You missed ciReplay change to record _inline_instructions_size and restore it. That is what is used in inlining decision in your changes.

We currently don't record/restore `_instructions_size` in replay compilation either, probably because inlining decisions are enforced explicitly:

https://github.com/openjdk/jdk/blob/9f24a6f43c6a5e1fa92275e0a87af4f1f0603ba3/src/hotspot/share/ci/ciReplay.cpp#L1531-L1532

But I agree that it's better to be consistent here.

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

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


More information about the hotspot-dev mailing list