diff -r 2fe998383789 -r e4fcbeb5a698 src/share/vm/opto/escape.hpp --- a/src/share/vm/opto/escape.hpp Sat Nov 06 18:52:07 2010 -0700 +++ b/src/share/vm/opto/escape.hpp Sat Nov 06 20:35:36 2010 -0700 @@ -219,6 +219,9 @@ // is still being collected. If false, // no new nodes will be processed. + bool _progress; // Indicates whether new Graph's edges + // were created. + uint _phantom_object; // Index of globally escaping object // that pointer values loaded from // a field which has not been set @@ -266,6 +269,13 @@ void add_deferred_edge(uint from_i, uint to_i); void add_field_edge(uint from_i, uint to_i, int offs); + // Add an edge of the specified type pointing to the specified target. + // Set _progress if new edge is added. + void add_edge(PointsToNode *f, uint to_i, PointsToNode::EdgeType et) { + uint e_cnt = f->edge_count(); + f->add_edge(to_i, et); + _progress |= (f->edge_count() != e_cnt); + } // Add an edge to node given by "to_i" from any field of adr_i whose offset // matches "offset" A deferred edge is added if to_i is a LocalVar, and