< prev index next > src/hotspot/share/ci/ciKlass.hpp
Print this page
friend class ciEnv;
friend class ciField;
friend class ciMethod;
friend class ciMethodData;
friend class ciObjArrayKlass;
- friend class ciSignature;
friend class ciReceiverTypeData;
private:
ciSymbol* _name;
jint _layout_helper;
friend class ciEnv;
friend class ciField;
friend class ciMethod;
friend class ciMethodData;
friend class ciObjArrayKlass;
friend class ciReceiverTypeData;
+ friend class ciSignature;
+ friend class ciFlatArrayKlass;
+ friend class ciArrayKlass;
private:
ciSymbol* _name;
jint _layout_helper;
// Does this type (array, class, interface) have no subtypes?
virtual bool is_leaf_type() {
return false;
}
+ virtual bool can_be_inline_klass(bool is_exact = false) {
+ return false;
+ }
+
+ virtual bool can_be_inline_array_klass() {
+ return EnableValhalla && is_java_lang_Object();
+ }
+
bool is_in_encoding_range() {
Klass* k = get_Klass();
bool is_in_encoding_range = CompressedKlassPointers::is_encodable(k);
assert(is_in_encoding_range || k->is_interface() || k->is_abstract(), "sanity");
return is_in_encoding_range;
jint modifier_flags();
// Fetch Klass::access_flags.
jint access_flags();
+ markWord prototype_header() const;
+
// Fetch Klass::misc_flags.
klass_flags_t misc_flags();
// What kind of ciObject is this?
bool is_klass() const { return true; }
< prev index next >