1.1 --- a/src/share/vm/opto/escape.hpp Mon Feb 07 09:46:01 2011 -0800 1.2 +++ b/src/share/vm/opto/escape.hpp Mon Feb 07 10:25:39 2011 -0800 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -268,7 +268,12 @@ 1.11 // walk the connection graph starting at the node corresponding to "n" and 1.12 // add the index of everything it could point to, to "ptset". This may cause 1.13 // Phi's encountered to get (re)processed (which requires "phase".) 1.14 - void PointsTo(VectorSet &ptset, Node * n); 1.15 + VectorSet* PointsTo(Node * n); 1.16 + 1.17 + // Reused structures for PointsTo(). 1.18 + VectorSet pt_ptset; 1.19 + VectorSet pt_visited; 1.20 + GrowableArray<uint> pt_worklist; 1.21 1.22 // Edge manipulation. The "from_i" and "to_i" arguments are the 1.23 // node indices of the source and destination of the edge 1.24 @@ -334,8 +339,11 @@ 1.25 // Set the escape state of a node 1.26 void set_escape_state(uint ni, PointsToNode::EscapeState es); 1.27 1.28 - // Search for objects which are not scalar replaceable. 1.29 - void verify_escape_state(int nidx, VectorSet& ptset, PhaseTransform* phase); 1.30 + // Adjust escape state after Connection Graph is built. 1.31 + void adjust_escape_state(int nidx, PhaseTransform* phase); 1.32 + 1.33 + // Compute the escape information 1.34 + bool compute_escape(); 1.35 1.36 public: 1.37 ConnectionGraph(Compile *C, PhaseIterGVN *igvn); 1.38 @@ -346,9 +354,6 @@ 1.39 // Perform escape analysis 1.40 static void do_analysis(Compile *C, PhaseIterGVN *igvn); 1.41 1.42 - // Compute the escape information 1.43 - bool compute_escape(); 1.44 - 1.45 // escape state of a node 1.46 PointsToNode::EscapeState escape_state(Node *n); 1.47