RFR: 8329433: Reduce nmethod header size [v4]

Vladimir Kozlov kvn at openjdk.org
Tue Apr 16 18:58:01 UTC 2024


On Tue, 16 Apr 2024 16:33:18 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Use 16-bits types for header_size and frame_complete_offset arguments
>
> src/hotspot/share/code/codeBlob.cpp line 106:
> 
>> 104: 
>> 105: // Simple CodeBlob used for simple BufferBlob.
>> 106: CodeBlob::CodeBlob(const char* name, CodeBlobKind kind, int size, uint16_t header_size) :
> 
> Just a drive-by comment.  You might be able to use delegating constructors for CodeBlob so you don't have to have the field initializations twice.  Maybe the same for nmethod ?

Thank you, @coleenp, foe looking on these changes.

Which fields are initialized twice? Only `_oop_maps` is set to `nullptr` before we proper build oop maps in first constructor.

The only saving could be lines of code but then I would have to check that `cb != nullptr` and do other additional checks which I don't think will save much lines.

Separation of `nmethod` constructor for native wrappers is helping clear see the difference and I would like to keep them separate. We have `init_defaults()` method for similar code and I can move more code into it from both constructors.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18768#discussion_r1567814189


More information about the graal-dev mailing list