src/share/vm/code/dependencies.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
JDK-7194669 Cdiff src/share/vm/code/dependencies.hpp
src/share/vm/code/dependencies.hpp
Print this page
*** 478,487 ****
--- 478,490 ----
}
bool next();
DepType type() { return _type; }
+ bool has_oop_argument() { return type() == call_site_target_value; }
+ uintptr_t get_identifier(int i);
+
int argument_count() { return dep_args(type()); }
int argument_index(int i) { assert(0 <= i && i < argument_count(), "oob");
return _xi[i]; }
Metadata* argument(int i); // => recorded_oop_at(argument_index(i))
oop argument_oop(int i); // => recorded_oop_at(argument_index(i))
*** 521,530 ****
--- 524,574 ----
static void print_statistics() PRODUCT_RETURN;
};
+ class DependencySignature {
+ private:
+ int _args_count;
+ uintptr_t _argument_hash[Dependencies::max_arg_count];
+ Dependencies::DepType _type;
+
+
+ public:
+ DependencySignature(DependencySignature* sig) {
+ _args_count = sig->args_count();
+ _type = sig->type();
+ for (int i = 0; i < _args_count; i++) {
+ _argument_hash[i] = sig->_argument_hash[i];
+ }
+ }
+
+ DependencySignature(Dependencies::DepStream& dep) {
+ _args_count = dep.argument_count();
+ _type = dep.type();
+ for (int i = 0; i < _args_count; i++) {
+ _argument_hash[i] = dep.get_identifier(i);
+ }
+ }
+
+ bool equals(const DependencySignature& sig) const;
+ void* operator new(size_t size) throw();
+
+ int args_count() const { return _args_count; }
+ uintptr_t arg(int idx) const { return _argument_hash[idx]; }
+ Dependencies::DepType type() const { return _type; }
+ };
+
+ class DependencySignatureBuffer : public StackObj {
+ private:
+ GrowableArray<DependencySignature*>** _signatures;
+
+ public:
+ DependencySignatureBuffer();
+ bool add_if_missing(const DependencySignature& sig);
+ };
+
// Every particular DepChange is a sub-class of this class.
class DepChange : public StackObj {
public:
// What kind of DepChange is this?
virtual bool is_klass_change() const { return false; }
src/share/vm/code/dependencies.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File