--- old/src/share/vm/opto/escape.hpp Tue Nov 2 15:10:08 2010 +++ new/src/share/vm/opto/escape.hpp Tue Nov 2 15:10:07 2010 @@ -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 a edge of the specified type pointing to the specified target. + // Set _progress if new esge 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