comparison src/share/vm/code/debugInfoRec.hpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents f95d63e2154a
children e522a00b91aa
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
54 // "repeat last four steps for all scopes" 54 // "repeat last four steps for all scopes"
55 // "outer most scope first and inner most scope last" 55 // "outer most scope first and inner most scope last"
56 // NB: nodes from create_scope_values and create_locations 56 // NB: nodes from create_scope_values and create_locations
57 // can be reused for simple sharing. 57 // can be reused for simple sharing.
58 // - mark the end of the scopes (end_safepoint or end_non_safepoint) 58 // - mark the end of the scopes (end_safepoint or end_non_safepoint)
59 // 2) Use oop_size, data_size, pcs_size to create the nmethod and 59 // 2) Use oop_size, metadata_size, data_size, pcs_size to create the nmethod
60 // finally migrate the debugging information into the nmethod 60 // and finally migrate the debugging information into the nmethod
61 // by calling copy_to. 61 // by calling copy_to.
62 62
63 class DebugToken; // Opaque datatype for stored: 63 class DebugToken; // Opaque datatype for stored:
64 // - GrowableArray<ScopeValue*> 64 // - GrowableArray<ScopeValue*>
65 // - GrowableArray<MonitorValue*> 65 // - GrowableArray<MonitorValue*>
121 121
122 // returns the size of the generated scopeDescs. 122 // returns the size of the generated scopeDescs.
123 int data_size(); 123 int data_size();
124 int pcs_size(); 124 int pcs_size();
125 int oop_size() { return oop_recorder()->oop_size(); } 125 int oop_size() { return oop_recorder()->oop_size(); }
126 int metadata_size() { return oop_recorder()->metadata_size(); }
126 127
127 // copy the generated debugging information to nmethod 128 // copy the generated debugging information to nmethod
128 void copy_to(nmethod* nm); 129 void copy_to(nmethod* nm);
129 130
130 // verifies the debug information 131 // verifies the debug information
191 192
192 int serialize_monitor_values(GrowableArray<MonitorValue*>* monitors); 193 int serialize_monitor_values(GrowableArray<MonitorValue*>* monitors);
193 int serialize_scope_values(GrowableArray<ScopeValue*>* values); 194 int serialize_scope_values(GrowableArray<ScopeValue*>* values);
194 int find_sharable_decode_offset(int stream_offset); 195 int find_sharable_decode_offset(int stream_offset);
195 196
197 #ifndef PRODUCT
198 bool recorders_frozen();
199 void mark_recorders_frozen();
200 #endif // PRODUCT
201
196 public: 202 public:
197 enum { serialized_null = 0 }; 203 enum { serialized_null = 0 };
198 }; 204 };
199 205
200 #endif // SHARE_VM_CODE_DEBUGINFOREC_HPP 206 #endif // SHARE_VM_CODE_DEBUGINFOREC_HPP