< prev index next >

src/hotspot/share/ci/ciKlass.hpp

Print this page
*** 25,10 ***
--- 25,11 ---
  #ifndef SHARE_CI_CIKLASS_HPP
  #define SHARE_CI_CIKLASS_HPP
  
  #include "ci/ciType.hpp"
  #include "oops/klass.hpp"
+ #include "runtime/arguments.hpp"
  
  // ciKlass
  //
  // This class and its subclasses represent Klass*s in the
  // HotSpot virtual machine.  In the vm, each Klass* contains an

*** 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;
  
--- 43,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;
  

*** 102,10 ***
--- 105,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 Arguments::is_valhalla_enabled() && 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, "sanity");
      return is_in_encoding_range;

*** 120,10 ***
--- 131,12 ---
    ciInstance*            java_mirror();
  
    // Fetch modifier flags.
    jint                   modifier_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 >