< prev index next >

src/hotspot/share/ci/ciObject.hpp

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved.
+  * 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 >