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