comparison src/share/vm/oops/instanceKlass.hpp @ 15052:5e6f29f287d6

added InstanceKlass::_graal_node_class field to accelerate Node.getNodeClass()
author Doug Simon <doug.simon@oracle.com>
date Thu, 10 Apr 2014 00:01:30 +0200
parents 4ca6dc0799b6
children 89152779163c
comparison
equal deleted inserted replaced
15051:2df054b37edc 15052:5e6f29f287d6
239 u2 _minor_version; // minor version number of class file 239 u2 _minor_version; // minor version number of class file
240 u2 _major_version; // major version number of class file 240 u2 _major_version; // major version number of class file
241 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization) 241 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization)
242 int _vtable_len; // length of Java vtable (in words) 242 int _vtable_len; // length of Java vtable (in words)
243 int _itable_len; // length of Java itable (in words) 243 int _itable_len; // length of Java itable (in words)
244 #ifdef GRAAL
245 // com/oracle/graal/graph/NodeClass instance mirroring this class
246 oop _graal_node_class;
247 #endif
244 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily) 248 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily)
245 MemberNameTable* _member_names; // Member names 249 MemberNameTable* _member_names; // Member names
246 JNIid* _jni_ids; // First JNI identifier for static fields in this class 250 JNIid* _jni_ids; // First JNI identifier for static fields in this class
247 jmethodID* _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none 251 jmethodID* _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none
248 nmethodBucket* _dependencies; // list of dependent nmethods 252 nmethodBucket* _dependencies; // list of dependent nmethods
742 virtual void check_valid_for_instantiation(bool throwError, TRAPS); 746 virtual void check_valid_for_instantiation(bool throwError, TRAPS);
743 747
744 // initialization 748 // initialization
745 void call_class_initializer(TRAPS); 749 void call_class_initializer(TRAPS);
746 void set_initialization_state_and_notify(ClassState state, TRAPS); 750 void set_initialization_state_and_notify(ClassState state, TRAPS);
751
752 #ifdef GRAAL
753 // Graal com.oracle.graal.graph.NodeClass mirror
754 oop graal_node_class() { return _graal_node_class; }
755 void set_graal_node_class(oop m) { klass_oop_store(&_graal_node_class, m); }
756 oop* adr_graal_node_class() { return (oop*)&this->_graal_node_class; }
757
758 // GC support
759 virtual void oops_do(OopClosure* cl);
760 #endif
747 761
748 // OopMapCache support 762 // OopMapCache support
749 OopMapCache* oop_map_cache() { return _oop_map_cache; } 763 OopMapCache* oop_map_cache() { return _oop_map_cache; }
750 void set_oop_map_cache(OopMapCache *cache) { _oop_map_cache = cache; } 764 void set_oop_map_cache(OopMapCache *cache) { _oop_map_cache = cache; }
751 void mask_for(methodHandle method, int bci, InterpreterOopMap* entry); 765 void mask_for(methodHandle method, int bci, InterpreterOopMap* entry);