< 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();
+ }
+
// Attempt to get a klass using this ciKlass's loader.
ciKlass* find_klass(ciSymbol* klass_name);
// Note: To find a class from its name string, use ciSymbol::make,
// but consider adding to vmSymbols.hpp instead.
jint modifier_flags();
// Fetch Klass::access_flags.
jint access_flags();
+ markWord prototype_header() const;
+
// What kind of ciObject is this?
bool is_klass() const { return true; }
virtual ciKlass* exact_klass() = 0;
< prev index next >