mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8216157: Enable inlining of java_lang_Class::is_primitive
Reviewed-by: coleenp, eosterlund, jiangli
This commit is contained in:
parent
bc2275c28e
commit
bf63ee682e
10 changed files with 24 additions and 19 deletions
|
@ -23,6 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "classfile/javaClasses.inline.hpp"
|
||||||
#include "ci/ciConstant.hpp"
|
#include "ci/ciConstant.hpp"
|
||||||
#include "ci/ciField.hpp"
|
#include "ci/ciField.hpp"
|
||||||
#include "ci/ciInstance.hpp"
|
#include "ci/ciInstance.hpp"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "ci/ciInstance.hpp"
|
#include "ci/ciInstance.hpp"
|
||||||
#include "ci/ciMethodType.hpp"
|
#include "ci/ciMethodType.hpp"
|
||||||
#include "ci/ciUtilities.inline.hpp"
|
#include "ci/ciUtilities.inline.hpp"
|
||||||
#include "classfile/javaClasses.hpp"
|
#include "classfile/javaClasses.inline.hpp"
|
||||||
|
|
||||||
ciType* ciMethodType::class_to_citype(oop klass_oop) const {
|
ciType* ciMethodType::class_to_citype(oop klass_oop) const {
|
||||||
if (java_lang_Class::is_primitive(klass_oop)) {
|
if (java_lang_Class::is_primitive(klass_oop)) {
|
||||||
|
|
|
@ -1462,23 +1462,6 @@ void java_lang_Class::release_set_array_klass(oop java_class, Klass* klass) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool java_lang_Class::is_primitive(oop java_class) {
|
|
||||||
// should assert:
|
|
||||||
//assert(java_lang_Class::is_instance(java_class), "must be a Class object");
|
|
||||||
bool is_primitive = (java_class->metadata_field(_klass_offset) == NULL);
|
|
||||||
|
|
||||||
#ifdef ASSERT
|
|
||||||
if (is_primitive) {
|
|
||||||
Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset));
|
|
||||||
assert(k == NULL || is_java_primitive(ArrayKlass::cast(k)->element_type()),
|
|
||||||
"Should be either the T_VOID primitive or a java primitive");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return is_primitive;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BasicType java_lang_Class::primitive_type(oop java_class) {
|
BasicType java_lang_Class::primitive_type(oop java_class) {
|
||||||
assert(java_lang_Class::is_primitive(java_class), "just checking");
|
assert(java_lang_Class::is_primitive(java_class), "just checking");
|
||||||
Klass* ak = ((Klass*)java_class->metadata_field(_array_klass_offset));
|
Klass* ak = ((Klass*)java_class->metadata_field(_array_klass_offset));
|
||||||
|
|
|
@ -174,6 +174,22 @@ inline bool java_lang_Class::is_instance(oop obj) {
|
||||||
return obj != NULL && obj->klass() == SystemDictionary::Class_klass();
|
return obj != NULL && obj->klass() == SystemDictionary::Class_klass();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool java_lang_Class::is_primitive(oop java_class) {
|
||||||
|
// should assert:
|
||||||
|
//assert(java_lang_Class::is_instance(java_class), "must be a Class object");
|
||||||
|
bool is_primitive = (java_class->metadata_field(_klass_offset) == NULL);
|
||||||
|
|
||||||
|
#ifdef ASSERT
|
||||||
|
if (is_primitive) {
|
||||||
|
Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset));
|
||||||
|
assert(k == NULL || is_java_primitive(ArrayKlass::cast(k)->element_type()),
|
||||||
|
"Should be either the T_VOID primitive or a java primitive");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return is_primitive;
|
||||||
|
}
|
||||||
|
|
||||||
inline bool java_lang_invoke_DirectMethodHandle::is_instance(oop obj) {
|
inline bool java_lang_invoke_DirectMethodHandle::is_instance(oop obj) {
|
||||||
return obj != NULL && is_subclass(obj->klass());
|
return obj != NULL && is_subclass(obj->klass());
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
<xsl:call-template name="sourceHeader"/>
|
<xsl:call-template name="sourceHeader"/>
|
||||||
<xsl:text>
|
<xsl:text>
|
||||||
# include "precompiled.hpp"
|
# include "precompiled.hpp"
|
||||||
|
# include "classfile/javaClasses.inline.hpp"
|
||||||
# include "memory/resourceArea.hpp"
|
# include "memory/resourceArea.hpp"
|
||||||
# include "utilities/macros.hpp"
|
# include "utilities/macros.hpp"
|
||||||
#if INCLUDE_JVMTI
|
#if INCLUDE_JVMTI
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "classfile/javaClasses.inline.hpp"
|
||||||
#include "classfile/systemDictionary.hpp"
|
#include "classfile/systemDictionary.hpp"
|
||||||
#include "code/nmethod.hpp"
|
#include "code/nmethod.hpp"
|
||||||
#include "code/pcDesc.hpp"
|
#include "code/pcDesc.hpp"
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include "aot/aotLoader.hpp"
|
#include "aot/aotLoader.hpp"
|
||||||
#include "classfile/classLoaderDataGraph.hpp"
|
#include "classfile/classLoaderDataGraph.hpp"
|
||||||
#include "classfile/classFileStream.hpp"
|
#include "classfile/classFileStream.hpp"
|
||||||
|
#include "classfile/javaClasses.inline.hpp"
|
||||||
#include "classfile/metadataOnStackMark.hpp"
|
#include "classfile/metadataOnStackMark.hpp"
|
||||||
#include "classfile/systemDictionary.hpp"
|
#include "classfile/systemDictionary.hpp"
|
||||||
#include "classfile/verifier.hpp"
|
#include "classfile/verifier.hpp"
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "classfile/javaClasses.inline.hpp"
|
||||||
#include "jvmtifiles/jvmtiEnv.hpp"
|
#include "jvmtifiles/jvmtiEnv.hpp"
|
||||||
#include "logging/log.hpp"
|
#include "logging/log.hpp"
|
||||||
#include "logging/logConfiguration.hpp"
|
#include "logging/logConfiguration.hpp"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "jvm.h"
|
#include "jvm.h"
|
||||||
#include "classfile/javaClasses.hpp"
|
#include "classfile/javaClasses.inline.hpp"
|
||||||
#include "classfile/moduleEntry.hpp"
|
#include "classfile/moduleEntry.hpp"
|
||||||
#include "classfile/packageEntry.hpp"
|
#include "classfile/packageEntry.hpp"
|
||||||
#include "classfile/stringTable.hpp"
|
#include "classfile/stringTable.hpp"
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include "jvm.h"
|
#include "jvm.h"
|
||||||
#include "classfile/classLoaderData.inline.hpp"
|
#include "classfile/classLoaderData.inline.hpp"
|
||||||
#include "classfile/classLoaderDataGraph.hpp"
|
#include "classfile/classLoaderDataGraph.hpp"
|
||||||
|
#include "classfile/javaClasses.inline.hpp"
|
||||||
#include "classfile/symbolTable.hpp"
|
#include "classfile/symbolTable.hpp"
|
||||||
#include "classfile/systemDictionary.hpp"
|
#include "classfile/systemDictionary.hpp"
|
||||||
#include "classfile/vmSymbols.hpp"
|
#include "classfile/vmSymbols.hpp"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue