< prev index next >

src/hotspot/share/ci/ciObject.hpp

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.
--- 1,7 ---
  /*
!  * Copyright (c) 1999, 2026, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

*** 57,10 ***
--- 57,11 ---
    // A JNI handle referring to an oop in the VM.  This
    // handle may, in a small set of cases, correctly be null.
    jobject  _handle;
    ciKlass* _klass;
  
+ protected:
    // Cache constant value lookups to ensure that consistent values are observed during compilation.
    class ConstantValue {
      private:
        ciConstant _value;
        int _off;

*** 71,10 ***
--- 72,11 ---
  
        int off() const { return _off; }
        ciConstant value() const { return _value; }
    };
  
+ private:
    GrowableArray<ConstantValue>* _constant_values = nullptr;
  
  protected:
    ciObject();
    ciObject(oop o);

*** 126,10 ***
--- 128,11 ---
    virtual bool is_method_handle()     const { return false; }
    virtual bool is_method_type()       const { return false; }
    virtual bool is_array()                   { return false; }
    virtual bool is_obj_array()               { return false; }
    virtual bool is_type_array()              { return false; }
+   virtual bool is_flat_array()        const { return false; }
    virtual bool is_native_entry_point()const { return false; }
  
    // Is this a type or value which has no associated class?
    // It is true of primitive types and null objects.
    virtual bool is_classless() const         { return false; }

*** 180,10 ***
--- 183,14 ---
    }
    ciTypeArray* as_type_array() {
      assert(is_type_array(), "bad cast");
      return (ciTypeArray*)this;
    }
+   ciFlatArray* as_flat_array() {
+     assert(is_flat_array(), "bad cast");
+     return (ciFlatArray*)this;
+   }
  
    // Print debugging output about this ciObject.
    void print(outputStream* st);
    void print() { print(tty); }  // GDB cannot handle default arguments
  
< prev index next >