Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/vmStructs.cpp @ 10408:836a62f43af9
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 19 Jun 2013 10:45:56 +0200 |
parents | 89e4d67fdd2a f2110083203d |
children | 6b0fd0964b87 |
comparison
equal
deleted
inserted
replaced
10086:e0fb8a213650 | 10408:836a62f43af9 |
---|---|
58 #include "memory/genCollectedHeap.hpp" | 58 #include "memory/genCollectedHeap.hpp" |
59 #include "memory/generation.hpp" | 59 #include "memory/generation.hpp" |
60 #include "memory/generationSpec.hpp" | 60 #include "memory/generationSpec.hpp" |
61 #include "memory/heap.hpp" | 61 #include "memory/heap.hpp" |
62 #include "memory/metablock.hpp" | 62 #include "memory/metablock.hpp" |
63 #include "memory/referenceType.hpp" | |
63 #include "memory/space.hpp" | 64 #include "memory/space.hpp" |
64 #include "memory/tenuredGeneration.hpp" | 65 #include "memory/tenuredGeneration.hpp" |
65 #include "memory/universe.hpp" | 66 #include "memory/universe.hpp" |
66 #include "memory/watermark.hpp" | 67 #include "memory/watermark.hpp" |
67 #include "oops/arrayKlass.hpp" | 68 #include "oops/arrayKlass.hpp" |
75 #include "oops/instanceMirrorKlass.hpp" | 76 #include "oops/instanceMirrorKlass.hpp" |
76 #include "oops/instanceOop.hpp" | 77 #include "oops/instanceOop.hpp" |
77 #include "oops/klass.hpp" | 78 #include "oops/klass.hpp" |
78 #include "oops/markOop.hpp" | 79 #include "oops/markOop.hpp" |
79 #include "oops/methodData.hpp" | 80 #include "oops/methodData.hpp" |
81 #include "oops/methodCounters.hpp" | |
80 #include "oops/method.hpp" | 82 #include "oops/method.hpp" |
81 #include "oops/objArrayKlass.hpp" | 83 #include "oops/objArrayKlass.hpp" |
82 #include "oops/objArrayOop.hpp" | 84 #include "oops/objArrayOop.hpp" |
83 #include "oops/oop.inline.hpp" | 85 #include "oops/oop.inline.hpp" |
84 #include "oops/symbol.hpp" | 86 #include "oops/symbol.hpp" |
289 nonstatic_field(InstanceKlass, _methods, Array<Method*>*) \ | 291 nonstatic_field(InstanceKlass, _methods, Array<Method*>*) \ |
290 nonstatic_field(InstanceKlass, _local_interfaces, Array<Klass*>*) \ | 292 nonstatic_field(InstanceKlass, _local_interfaces, Array<Klass*>*) \ |
291 nonstatic_field(InstanceKlass, _transitive_interfaces, Array<Klass*>*) \ | 293 nonstatic_field(InstanceKlass, _transitive_interfaces, Array<Klass*>*) \ |
292 nonstatic_field(InstanceKlass, _fields, Array<u2>*) \ | 294 nonstatic_field(InstanceKlass, _fields, Array<u2>*) \ |
293 nonstatic_field(InstanceKlass, _java_fields_count, u2) \ | 295 nonstatic_field(InstanceKlass, _java_fields_count, u2) \ |
294 nonstatic_field(InstanceKlass, _constants, ConstantPool*) \ | 296 nonstatic_field(InstanceKlass, _constants, ConstantPool*) \ |
295 nonstatic_field(InstanceKlass, _class_loader_data, ClassLoaderData*) \ | 297 nonstatic_field(InstanceKlass, _class_loader_data, ClassLoaderData*) \ |
296 nonstatic_field(InstanceKlass, _protection_domain, oop) \ | |
297 nonstatic_field(InstanceKlass, _signers, objArrayOop) \ | |
298 nonstatic_field(InstanceKlass, _source_file_name, Symbol*) \ | 298 nonstatic_field(InstanceKlass, _source_file_name, Symbol*) \ |
299 nonstatic_field(InstanceKlass, _source_debug_extension, char*) \ | 299 nonstatic_field(InstanceKlass, _source_debug_extension, char*) \ |
300 nonstatic_field(InstanceKlass, _inner_classes, Array<jushort>*) \ | 300 nonstatic_field(InstanceKlass, _inner_classes, Array<jushort>*) \ |
301 nonstatic_field(InstanceKlass, _nonstatic_field_size, int) \ | 301 nonstatic_field(InstanceKlass, _nonstatic_field_size, int) \ |
302 nonstatic_field(InstanceKlass, _static_field_size, int) \ | 302 nonstatic_field(InstanceKlass, _static_field_size, int) \ |
346 nonstatic_field(MethodData, _nof_overflow_traps, uint) \ | 346 nonstatic_field(MethodData, _nof_overflow_traps, uint) \ |
347 nonstatic_field(MethodData, _eflags, intx) \ | 347 nonstatic_field(MethodData, _eflags, intx) \ |
348 nonstatic_field(MethodData, _arg_local, intx) \ | 348 nonstatic_field(MethodData, _arg_local, intx) \ |
349 nonstatic_field(MethodData, _arg_stack, intx) \ | 349 nonstatic_field(MethodData, _arg_stack, intx) \ |
350 nonstatic_field(MethodData, _arg_returned, intx) \ | 350 nonstatic_field(MethodData, _arg_returned, intx) \ |
351 nonstatic_field(Method, _constMethod, ConstMethod*) \ | 351 nonstatic_field(MethodCounters, _interpreter_invocation_count, int) \ |
352 nonstatic_field(Method, _method_data, MethodData*) \ | 352 nonstatic_field(MethodCounters, _interpreter_throwout_count, u2) \ |
353 nonstatic_field(Method, _interpreter_invocation_count, int) \ | 353 nonstatic_field(MethodCounters, _number_of_breakpoints, u2) \ |
354 nonstatic_field(MethodCounters, _invocation_counter, InvocationCounter) \ | |
355 nonstatic_field(MethodCounters, _backedge_counter, InvocationCounter) \ | |
356 nonstatic_field(Method, _constMethod, ConstMethod*) \ | |
357 nonstatic_field(Method, _method_data, MethodData*) \ | |
358 nonstatic_field(Method, _method_counters, MethodCounters*) \ | |
354 nonstatic_field(Method, _access_flags, AccessFlags) \ | 359 nonstatic_field(Method, _access_flags, AccessFlags) \ |
355 nonstatic_field(Method, _vtable_index, int) \ | 360 nonstatic_field(Method, _vtable_index, int) \ |
356 nonstatic_field(Method, _method_size, u2) \ | 361 nonstatic_field(Method, _method_size, u2) \ |
357 nonstatic_field(Method, _interpreter_throwout_count, u2) \ | |
358 nonstatic_field(Method, _number_of_breakpoints, u2) \ | |
359 nonstatic_field(Method, _invocation_counter, InvocationCounter) \ | |
360 nonstatic_field(Method, _backedge_counter, InvocationCounter) \ | |
361 nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \ | 362 nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \ |
362 volatile_nonstatic_field(Method, _code, nmethod*) \ | 363 volatile_nonstatic_field(Method, _code, nmethod*) \ |
363 nonstatic_field(Method, _i2i_entry, address) \ | 364 nonstatic_field(Method, _i2i_entry, address) \ |
364 nonstatic_field(Method, _adapter, AdapterHandlerEntry*) \ | 365 nonstatic_field(Method, _adapter, AdapterHandlerEntry*) \ |
365 volatile_nonstatic_field(Method, _from_compiled_entry, address) \ | 366 volatile_nonstatic_field(Method, _from_compiled_entry, address) \ |
824 nonstatic_field(nmethod, _verified_entry_point, address) \ | 825 nonstatic_field(nmethod, _verified_entry_point, address) \ |
825 nonstatic_field(nmethod, _osr_entry_point, address) \ | 826 nonstatic_field(nmethod, _osr_entry_point, address) \ |
826 nonstatic_field(nmethod, _lock_count, jint) \ | 827 nonstatic_field(nmethod, _lock_count, jint) \ |
827 nonstatic_field(nmethod, _stack_traversal_mark, long) \ | 828 nonstatic_field(nmethod, _stack_traversal_mark, long) \ |
828 nonstatic_field(nmethod, _compile_id, int) \ | 829 nonstatic_field(nmethod, _compile_id, int) \ |
830 nonstatic_field(nmethod, _comp_level, int) \ | |
829 nonstatic_field(nmethod, _exception_cache, ExceptionCache*) \ | 831 nonstatic_field(nmethod, _exception_cache, ExceptionCache*) \ |
830 nonstatic_field(nmethod, _marked_for_deoptimization, bool) \ | 832 nonstatic_field(nmethod, _marked_for_deoptimization, bool) \ |
831 \ | 833 \ |
832 unchecked_c2_static_field(Deoptimization, _trap_reason_name, void*) \ | 834 unchecked_c2_static_field(Deoptimization, _trap_reason_name, void*) \ |
833 \ | 835 \ |
1052 c2_nonstatic_field(Compile, _method, ciMethod*) \ | 1054 c2_nonstatic_field(Compile, _method, ciMethod*) \ |
1053 c2_nonstatic_field(Compile, _compile_id, const int) \ | 1055 c2_nonstatic_field(Compile, _compile_id, const int) \ |
1054 c2_nonstatic_field(Compile, _save_argument_registers, const bool) \ | 1056 c2_nonstatic_field(Compile, _save_argument_registers, const bool) \ |
1055 c2_nonstatic_field(Compile, _subsume_loads, const bool) \ | 1057 c2_nonstatic_field(Compile, _subsume_loads, const bool) \ |
1056 c2_nonstatic_field(Compile, _do_escape_analysis, const bool) \ | 1058 c2_nonstatic_field(Compile, _do_escape_analysis, const bool) \ |
1059 c2_nonstatic_field(Compile, _eliminate_boxing, const bool) \ | |
1057 c2_nonstatic_field(Compile, _ilt, InlineTree*) \ | 1060 c2_nonstatic_field(Compile, _ilt, InlineTree*) \ |
1058 \ | 1061 \ |
1059 c2_nonstatic_field(InlineTree, _caller_jvms, JVMState*) \ | 1062 c2_nonstatic_field(InlineTree, _caller_jvms, JVMState*) \ |
1060 c2_nonstatic_field(InlineTree, _method, ciMethod*) \ | 1063 c2_nonstatic_field(InlineTree, _method, ciMethod*) \ |
1061 c2_nonstatic_field(InlineTree, _caller_tree, InlineTree*) \ | 1064 c2_nonstatic_field(InlineTree, _caller_tree, InlineTree*) \ |
1113 c2_nonstatic_field(PhaseChaitin, _alternate, int) \ | 1116 c2_nonstatic_field(PhaseChaitin, _alternate, int) \ |
1114 c2_nonstatic_field(PhaseChaitin, _lo_degree, uint) \ | 1117 c2_nonstatic_field(PhaseChaitin, _lo_degree, uint) \ |
1115 c2_nonstatic_field(PhaseChaitin, _lo_stk_degree, uint) \ | 1118 c2_nonstatic_field(PhaseChaitin, _lo_stk_degree, uint) \ |
1116 c2_nonstatic_field(PhaseChaitin, _hi_degree, uint) \ | 1119 c2_nonstatic_field(PhaseChaitin, _hi_degree, uint) \ |
1117 c2_nonstatic_field(PhaseChaitin, _simplified, uint) \ | 1120 c2_nonstatic_field(PhaseChaitin, _simplified, uint) \ |
1118 c2_nonstatic_field(PhaseChaitin, _maxlrg, uint) \ | |
1119 \ | 1121 \ |
1120 c2_nonstatic_field(Block, _nodes, Node_List) \ | 1122 c2_nonstatic_field(Block, _nodes, Node_List) \ |
1121 c2_nonstatic_field(Block, _succs, Block_Array) \ | 1123 c2_nonstatic_field(Block, _succs, Block_Array) \ |
1122 c2_nonstatic_field(Block, _num_succs, uint) \ | 1124 c2_nonstatic_field(Block, _num_succs, uint) \ |
1123 c2_nonstatic_field(Block, _pre_order, uint) \ | 1125 c2_nonstatic_field(Block, _pre_order, uint) \ |
1380 declare_type(InstanceRefKlass, InstanceKlass) \ | 1382 declare_type(InstanceRefKlass, InstanceKlass) \ |
1381 declare_type(ConstantPool, Metadata) \ | 1383 declare_type(ConstantPool, Metadata) \ |
1382 declare_type(ConstantPoolCache, MetaspaceObj) \ | 1384 declare_type(ConstantPoolCache, MetaspaceObj) \ |
1383 declare_type(MethodData, Metadata) \ | 1385 declare_type(MethodData, Metadata) \ |
1384 declare_type(Method, Metadata) \ | 1386 declare_type(Method, Metadata) \ |
1387 declare_type(MethodCounters, MetaspaceObj) \ | |
1385 declare_type(ConstMethod, MetaspaceObj) \ | 1388 declare_type(ConstMethod, MetaspaceObj) \ |
1386 \ | 1389 \ |
1387 declare_toplevel_type(Symbol) \ | 1390 declare_toplevel_type(Symbol) \ |
1388 declare_toplevel_type(Symbol*) \ | 1391 declare_toplevel_type(Symbol*) \ |
1389 declare_toplevel_type(volatile Metadata*) \ | 1392 declare_toplevel_type(volatile Metadata*) \ |
3114 } | 3117 } |
3115 } | 3118 } |
3116 // Search for the base type by peeling off const and * | 3119 // Search for the base type by peeling off const and * |
3117 size_t len = strlen(typeName); | 3120 size_t len = strlen(typeName); |
3118 if (typeName[len-1] == '*') { | 3121 if (typeName[len-1] == '*') { |
3119 char * s = new char[len]; | 3122 char * s = NEW_C_HEAP_ARRAY(char, len, mtInternal); |
3120 strncpy(s, typeName, len - 1); | 3123 strncpy(s, typeName, len - 1); |
3121 s[len-1] = '\0'; | 3124 s[len-1] = '\0'; |
3122 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); | 3125 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); |
3123 if (recursiveFindType(origtypes, s, true) == 1) { | 3126 if (recursiveFindType(origtypes, s, true) == 1) { |
3124 delete [] s; | 3127 FREE_C_HEAP_ARRAY(char, s, mtInternal); |
3125 return 1; | 3128 return 1; |
3126 } | 3129 } |
3127 delete [] s; | 3130 FREE_C_HEAP_ARRAY(char, s, mtInternal); |
3128 } | 3131 } |
3129 const char* start = NULL; | 3132 const char* start = NULL; |
3130 if (strstr(typeName, "GrowableArray<") == typeName) { | 3133 if (strstr(typeName, "GrowableArray<") == typeName) { |
3131 start = typeName + strlen("GrowableArray<"); | 3134 start = typeName + strlen("GrowableArray<"); |
3132 } else if (strstr(typeName, "Array<") == typeName) { | 3135 } else if (strstr(typeName, "Array<") == typeName) { |
3133 start = typeName + strlen("Array<"); | 3136 start = typeName + strlen("Array<"); |
3134 } | 3137 } |
3135 if (start != NULL) { | 3138 if (start != NULL) { |
3136 const char * end = strrchr(typeName, '>'); | 3139 const char * end = strrchr(typeName, '>'); |
3137 int len = end - start + 1; | 3140 int len = end - start + 1; |
3138 char * s = new char[len]; | 3141 char * s = NEW_C_HEAP_ARRAY(char, len, mtInternal); |
3139 strncpy(s, start, len - 1); | 3142 strncpy(s, start, len - 1); |
3140 s[len-1] = '\0'; | 3143 s[len-1] = '\0'; |
3141 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); | 3144 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); |
3142 if (recursiveFindType(origtypes, s, true) == 1) { | 3145 if (recursiveFindType(origtypes, s, true) == 1) { |
3143 delete [] s; | 3146 FREE_C_HEAP_ARRAY(char, s, mtInternal); |
3144 return 1; | 3147 return 1; |
3145 } | 3148 } |
3146 delete [] s; | 3149 FREE_C_HEAP_ARRAY(char, s, mtInternal); |
3147 } | 3150 } |
3148 if (strstr(typeName, "const ") == typeName) { | 3151 if (strstr(typeName, "const ") == typeName) { |
3149 const char * s = typeName + strlen("const "); | 3152 const char * s = typeName + strlen("const "); |
3150 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); | 3153 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); |
3151 if (recursiveFindType(origtypes, s, true) == 1) { | 3154 if (recursiveFindType(origtypes, s, true) == 1) { |