comparison src/share/vm/code/debugInfoRec.hpp @ 7046:b6a8f2d23057

VM support for deferred reads and writes: ScopeDesc, DebugInfo, DebugInfoRecorder
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 27 Nov 2012 13:43:04 +0100
parents e522a00b91aa
children 0b646334c5f7
comparison
equal deleted inserted replaced
7039:adf5c101bc4b 7046:b6a8f2d23057
105 bool rethrow_exception = false, 105 bool rethrow_exception = false,
106 bool is_method_handle_invoke = false, 106 bool is_method_handle_invoke = false,
107 bool return_oop = false, 107 bool return_oop = false,
108 DebugToken* locals = NULL, 108 DebugToken* locals = NULL,
109 DebugToken* expressions = NULL, 109 DebugToken* expressions = NULL,
110 DebugToken* monitors = NULL); 110 DebugToken* monitors = NULL
111 #ifdef GRAAL
112 , DebugToken* deferred_writes = NULL
113 #endif // GRAAL
114 );
111 115
112 116
113 void dump_object_pool(GrowableArray<ScopeValue*>* objects); 117 void dump_object_pool(GrowableArray<ScopeValue*>* objects);
114 118
115 // This call must follow every add_safepoint, 119 // This call must follow every add_safepoint,
118 void end_non_safepoint(int pc_offset) { end_scopes(pc_offset, false); } 122 void end_non_safepoint(int pc_offset) { end_scopes(pc_offset, false); }
119 123
120 // helper fuctions for describe_scope to enable sharing 124 // helper fuctions for describe_scope to enable sharing
121 DebugToken* create_scope_values(GrowableArray<ScopeValue*>* values); 125 DebugToken* create_scope_values(GrowableArray<ScopeValue*>* values);
122 DebugToken* create_monitor_values(GrowableArray<MonitorValue*>* monitors); 126 DebugToken* create_monitor_values(GrowableArray<MonitorValue*>* monitors);
127 #ifdef GRAAL
128 DebugToken* create_deferred_writes(GrowableArray<DeferredWriteValue*>* deferred_writes);
129 #endif // GRAAL
123 130
124 // returns the size of the generated scopeDescs. 131 // returns the size of the generated scopeDescs.
125 int data_size(); 132 int data_size();
126 int pcs_size(); 133 int pcs_size();
127 int oop_size() { return oop_recorder()->oop_size(); } 134 int oop_size() { return oop_recorder()->oop_size(); }
192 void add_new_pc_offset(int pc_offset, jlong leaf_graph_id = -1); 199 void add_new_pc_offset(int pc_offset, jlong leaf_graph_id = -1);
193 void end_scopes(int pc_offset, bool is_safepoint); 200 void end_scopes(int pc_offset, bool is_safepoint);
194 201
195 int serialize_monitor_values(GrowableArray<MonitorValue*>* monitors); 202 int serialize_monitor_values(GrowableArray<MonitorValue*>* monitors);
196 int serialize_scope_values(GrowableArray<ScopeValue*>* values); 203 int serialize_scope_values(GrowableArray<ScopeValue*>* values);
204 #ifdef GRAAL
205 int serialize_deferred_writes(GrowableArray<DeferredWriteValue*>* deferred_writes);
206 #endif // GRAAL
197 int find_sharable_decode_offset(int stream_offset); 207 int find_sharable_decode_offset(int stream_offset);
198 208
199 #ifndef PRODUCT 209 #ifndef PRODUCT
200 bool recorders_frozen(); 210 bool recorders_frozen();
201 void mark_recorders_frozen(); 211 void mark_recorders_frozen();