RFR: 8329332: Remove CompiledMethod and CodeBlobLayout classes [v2]

Stefan Karlsson stefank at openjdk.org
Wed Apr 3 17:53:01 UTC 2024


On Wed, 3 Apr 2024 16:29:03 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> src/hotspot/share/code/codeBlob.hpp line 409:
>> 
>>> 407: 
>>> 408:   // GC/Verification support
>>> 409:   virtual void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) override { /* nothing to do */ }
>> 
>> In the GC code we usually have either virtual OR override, but not both. Could we skip `virtual` here? Or does the compiler code usually use both?
>
> No special rules here. I simply want to see all `virtual` methods explicitly and `override` is required by C++.
> I would like to keep it this way in these changes. I am investigating possibility to convert all these virtual methods to normal one to remove virtual table and virtual pointer (8 bytes) from CodeBlob class.

`override` is not required by C++. You do however mark all virtual methods with `override` if any of the functions are marked with `override`. I think it would be good to have a HotSpot code style discussion about this (but not in this RFE).

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18554#discussion_r1550206804


More information about the serviceability-dev mailing list