207 GrowableArray<PointsToNode> _nodes; // Connection graph nodes indexed |
207 GrowableArray<PointsToNode> _nodes; // Connection graph nodes indexed |
208 // by ideal node index. |
208 // by ideal node index. |
209 |
209 |
210 Unique_Node_List _delayed_worklist; // Nodes to be processed before |
210 Unique_Node_List _delayed_worklist; // Nodes to be processed before |
211 // the call build_connection_graph(). |
211 // the call build_connection_graph(). |
|
212 |
|
213 GrowableArray<MergeMemNode *> _mergemem_worklist; // List of all MergeMem nodes |
212 |
214 |
213 VectorSet _processed; // Records which nodes have been |
215 VectorSet _processed; // Records which nodes have been |
214 // processed. |
216 // processed. |
215 |
217 |
216 bool _collecting; // Indicates whether escape information |
218 bool _collecting; // Indicates whether escape information |
313 } |
315 } |
314 |
316 |
315 // Set the escape state of a node |
317 // Set the escape state of a node |
316 void set_escape_state(uint ni, PointsToNode::EscapeState es); |
318 void set_escape_state(uint ni, PointsToNode::EscapeState es); |
317 |
319 |
|
320 // Search for objects which are not scalar replaceable. |
|
321 void verify_escape_state(int nidx, VectorSet& ptset, PhaseTransform* phase); |
|
322 |
318 public: |
323 public: |
319 ConnectionGraph(Compile *C); |
324 ConnectionGraph(Compile *C); |
320 |
325 |
321 // Check for non-escaping candidates |
326 // Check for non-escaping candidates |
322 static bool has_candidates(Compile *C); |
327 static bool has_candidates(Compile *C); |