src/share/vm/opto/escape.hpp

changeset 2276
e4fcbeb5a698
parent 1989
60a14ad85270
child 2314
f95d63e2154a
equal deleted inserted replaced
2275:2fe998383789 2276:e4fcbeb5a698
217 217
218 bool _collecting; // Indicates whether escape information 218 bool _collecting; // Indicates whether escape information
219 // is still being collected. If false, 219 // is still being collected. If false,
220 // no new nodes will be processed. 220 // no new nodes will be processed.
221 221
222 bool _progress; // Indicates whether new Graph's edges
223 // were created.
224
222 uint _phantom_object; // Index of globally escaping object 225 uint _phantom_object; // Index of globally escaping object
223 // that pointer values loaded from 226 // that pointer values loaded from
224 // a field which has not been set 227 // a field which has not been set
225 // are assumed to point to. 228 // are assumed to point to.
226 uint _oop_null; // ConP(#NULL) 229 uint _oop_null; // ConP(#NULL)
264 // node indices of the source and destination of the edge 267 // node indices of the source and destination of the edge
265 void add_pointsto_edge(uint from_i, uint to_i); 268 void add_pointsto_edge(uint from_i, uint to_i);
266 void add_deferred_edge(uint from_i, uint to_i); 269 void add_deferred_edge(uint from_i, uint to_i);
267 void add_field_edge(uint from_i, uint to_i, int offs); 270 void add_field_edge(uint from_i, uint to_i, int offs);
268 271
272 // Add an edge of the specified type pointing to the specified target.
273 // Set _progress if new edge is added.
274 void add_edge(PointsToNode *f, uint to_i, PointsToNode::EdgeType et) {
275 uint e_cnt = f->edge_count();
276 f->add_edge(to_i, et);
277 _progress |= (f->edge_count() != e_cnt);
278 }
269 279
270 // Add an edge to node given by "to_i" from any field of adr_i whose offset 280 // Add an edge to node given by "to_i" from any field of adr_i whose offset
271 // matches "offset" A deferred edge is added if to_i is a LocalVar, and 281 // matches "offset" A deferred edge is added if to_i is a LocalVar, and
272 // a pointsto edge is added if it is a JavaObject 282 // a pointsto edge is added if it is a JavaObject
273 void add_edge_from_fields(uint adr, uint to_i, int offs); 283 void add_edge_from_fields(uint adr, uint to_i, int offs);

mercurial