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

Igor Veresov iveresov at openjdk.org
Mon Jan 16 19:16:15 UTC 2023


On Mon, 16 Jan 2023 02:59:32 GMT, Sergey Kuksenko <skuksenko at openjdk.org> wrote:

>> Post call nop instructions increase the size of methods, which leads to different inline decisions and performance regression.
>> Restore inline behavior by excluding post call nop instructions sizes from inline heuristics.
>
> Sergey Kuksenko has updated the pull request incrementally with one additional commit since the last revision:
> 
>   remove unused fields

src/hotspot/share/asm/assembler.hpp line 257:

> 255:     }
> 256:   };
> 257:   friend class InlineSkippedInstructionsCounter;

Technically, in C++11 this is not necessary. Nested classes are automatically friends with the outer class.

src/hotspot/share/ci/ciMethod.cpp line 1127:

> 1125:       CompiledMethod* code = get_Method()->code();
> 1126:       if (code != NULL && (code->comp_level() == CompLevel_full_optimization)) {
> 1127:         int isize = code->insts_end() - code->verified_entry_point() - code->skipped_instructions_size();

FYI, there is `CompiledMethod` has `insts_size()` that returns the code size. May be use it?

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

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


More information about the hotspot-dev mailing list