< prev index next >

src/hotspot/share/ci/ciKlass.hpp

Print this page
*** 42,12 ***
    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;
  
--- 42,14 ---
    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;
  

*** 105,10 ***
--- 107,18 ---
    // 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;

*** 126,10 ***
--- 136,12 ---
    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 >