From cb4ae1922db7fe3645fd50f301b4a1be965bc79b Mon Sep 17 00:00:00 2001 From: Afshin Zafari Date: Fri, 17 Mar 2023 13:20:58 +0000 Subject: [PATCH] 8292059: Do not inline InstanceKlass::allocate_instance() Reviewed-by: coleenp, stefank --- src/hotspot/share/oops/instanceKlass.cpp | 12 ++++++++++++ .../share/oops/instanceKlass.inline.hpp | 18 +----------------- src/hotspot/share/prims/jvmtiEnvBase.cpp | 1 + 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp index 0a56b74bf27..62ae6ffc16a 100644 --- a/src/hotspot/share/oops/instanceKlass.cpp +++ b/src/hotspot/share/oops/instanceKlass.cpp @@ -1393,6 +1393,18 @@ instanceOop InstanceKlass::allocate_instance(TRAPS) { return i; } +instanceOop InstanceKlass::allocate_instance(oop java_class, TRAPS) { + Klass* k = java_lang_Class::as_Klass(java_class); + if (k == nullptr) { + ResourceMark rm(THREAD); + THROW_(vmSymbols::java_lang_InstantiationException(), nullptr); + } + InstanceKlass* ik = cast(k); + ik->check_valid_for_instantiation(false, CHECK_NULL); + ik->initialize(CHECK_NULL); + return ik->allocate_instance(THREAD); +} + instanceHandle InstanceKlass::allocate_instance_handle(TRAPS) { return instanceHandle(THREAD, allocate_instance(THREAD)); } diff --git a/src/hotspot/share/oops/instanceKlass.inline.hpp b/src/hotspot/share/oops/instanceKlass.inline.hpp index b7a31400333..e03d1329422 100644 --- a/src/hotspot/share/oops/instanceKlass.inline.hpp +++ b/src/hotspot/share/oops/instanceKlass.inline.hpp @@ -27,16 +27,12 @@ #include "oops/instanceKlass.hpp" -#include "classfile/javaClasses.hpp" -#include "classfile/vmSymbols.hpp" -#include "memory/resourceArea.hpp" +#include "memory/memRegion.hpp" #include "oops/klass.inline.hpp" #include "oops/oop.inline.hpp" #include "runtime/atomic.hpp" -#include "utilities/debug.hpp" #include "utilities/devirtualizer.inline.hpp" #include "utilities/globalDefinitions.hpp" -#include "utilities/macros.hpp" inline intptr_t* InstanceKlass::start_of_itable() const { return (intptr_t*)start_of_vtable() + vtable_length(); } inline intptr_t* InstanceKlass::end_of_itable() const { return start_of_itable() + itable_length(); } @@ -185,16 +181,4 @@ ALWAYSINLINE void InstanceKlass::oop_oop_iterate_bounded(oop obj, OopClosureType oop_oop_iterate_oop_maps_bounded(obj, closure, mr); } -inline instanceOop InstanceKlass::allocate_instance(oop java_class, TRAPS) { - Klass* k = java_lang_Class::as_Klass(java_class); - if (k == nullptr) { - ResourceMark rm(THREAD); - THROW_(vmSymbols::java_lang_InstantiationException(), nullptr); - } - InstanceKlass* ik = cast(k); - ik->check_valid_for_instantiation(false, CHECK_NULL); - ik->initialize(CHECK_NULL); - return ik->allocate_instance(THREAD); -} - #endif // SHARE_OOPS_INSTANCEKLASS_INLINE_HPP diff --git a/src/hotspot/share/prims/jvmtiEnvBase.cpp b/src/hotspot/share/prims/jvmtiEnvBase.cpp index e77c8ec1a51..df0180728a6 100644 --- a/src/hotspot/share/prims/jvmtiEnvBase.cpp +++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp @@ -27,6 +27,7 @@ #include "classfile/javaClasses.inline.hpp" #include "classfile/moduleEntry.hpp" #include "classfile/symbolTable.hpp" +#include "classfile/vmSymbols.hpp" #include "jvmtifiles/jvmtiEnv.hpp" #include "memory/iterator.hpp" #include "memory/resourceArea.hpp"