Integrated: 8349088: De-virtualize Codeblob and nmethod
Vladimir Kozlov
kvn at openjdk.org
Tue Feb 18 20:11:04 UTC 2025
On Sun, 9 Feb 2025 17:45:30 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> Remove virtual methods from CodeBlob and nmethod to simplify saving/restoring in Leyden AOT cache. It avoids the need to patch hidden VPTR pointer to class's virtual table.
>
> Added C++ static asserts to make sure no virtual methods are added in a future.
>
> Fixed/cleaned SA code which process CodeBlob and its subclasses. Use `CodeBlob::_kind` field value to determine the type of blob.
>
> Tested tier1-5, hs-tier6-rt (for JFR testing), stress, xcomp
This pull request has now been integrated.
Changeset: 46d4a601
Author: Vladimir Kozlov <kvn at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/46d4a601e04f90b11d4ccc97a49f4e7010b4fd83
Stats: 529 lines in 23 files changed: 262 ins; 152 del; 115 mod
8349088: De-virtualize Codeblob and nmethod
Co-authored-by: Stefan Karlsson <stefank at openjdk.org>
Co-authored-by: Chris Plummer <cjplummer at openjdk.org>
Reviewed-by: cjplummer, aboldtch, dlong
-------------
PR: https://git.openjdk.org/jdk/pull/23533
More information about the serviceability-dev
mailing list