< prev index next > src/hotspot/share/ci/ciObject.hpp
Print this page
/*
! * 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.
/*
! * 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.
// 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;
int off() const { return _off; }
ciConstant value() const { return _value; }
};
+ private:
GrowableArray<ConstantValue>* _constant_values = nullptr;
protected:
ciObject();
ciObject(oop o);
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; }
}
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 >