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