Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/escape.hpp @ 1339:09ac706c2623
Merge
author | asaha |
---|---|
date | Wed, 24 Mar 2010 17:16:33 -0700 |
parents | 7fee0a6cc6d4 |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1338:f5dd08ad65df | 1339:09ac706c2623 |
---|---|
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 |
287 // ChecCastPP - allocation that this is a cast of | 289 // ChecCastPP - allocation that this is a cast of |
288 // allocation - CheckCastPP of the allocation | 290 // allocation - CheckCastPP of the allocation |
289 bool split_AddP(Node *addp, Node *base, PhaseGVN *igvn); | 291 bool split_AddP(Node *addp, Node *base, PhaseGVN *igvn); |
290 PhiNode *create_split_phi(PhiNode *orig_phi, int alias_idx, GrowableArray<PhiNode *> &orig_phi_worklist, PhaseGVN *igvn, bool &new_created); | 292 PhiNode *create_split_phi(PhiNode *orig_phi, int alias_idx, GrowableArray<PhiNode *> &orig_phi_worklist, PhaseGVN *igvn, bool &new_created); |
291 PhiNode *split_memory_phi(PhiNode *orig_phi, int alias_idx, GrowableArray<PhiNode *> &orig_phi_worklist, PhaseGVN *igvn); | 293 PhiNode *split_memory_phi(PhiNode *orig_phi, int alias_idx, GrowableArray<PhiNode *> &orig_phi_worklist, PhaseGVN *igvn); |
292 Node *find_mem(Node *mem, int alias_idx, PhaseGVN *igvn); | 294 void move_inst_mem(Node* n, GrowableArray<PhiNode *> &orig_phis, PhaseGVN *igvn); |
293 Node *find_inst_mem(Node *mem, int alias_idx,GrowableArray<PhiNode *> &orig_phi_worklist, PhaseGVN *igvn); | 295 Node *find_inst_mem(Node *mem, int alias_idx,GrowableArray<PhiNode *> &orig_phi_worklist, PhaseGVN *igvn); |
294 | 296 |
295 // Propagate unique types created for unescaped allocated objects | 297 // Propagate unique types created for unescaped allocated objects |
296 // through the graph | 298 // through the graph |
297 void split_unique_types(GrowableArray<Node *> &alloc_worklist); | 299 void split_unique_types(GrowableArray<Node *> &alloc_worklist); |
298 | 300 |
299 // manage entries in _node_map | 301 // manage entries in _node_map |
300 void set_map(int idx, Node *n) { _node_map.map(idx, n); } | 302 void set_map(int idx, Node *n) { _node_map.map(idx, n); } |
301 void set_map_phi(int idx, PhiNode *p) { _node_map.map(idx, (Node *) p); } | |
302 Node *get_map(int idx) { return _node_map[idx]; } | 303 Node *get_map(int idx) { return _node_map[idx]; } |
303 PhiNode *get_map_phi(int idx) { | 304 PhiNode *get_map_phi(int idx) { |
304 Node *phi = _node_map[idx]; | 305 Node *phi = _node_map[idx]; |
305 return (phi == NULL) ? NULL : phi->as_Phi(); | 306 return (phi == NULL) ? NULL : phi->as_Phi(); |
306 } | 307 } |
312 _compile->record_for_igvn(n); | 313 _compile->record_for_igvn(n); |
313 } | 314 } |
314 | 315 |
315 // Set the escape state of a node | 316 // Set the escape state of a node |
316 void set_escape_state(uint ni, PointsToNode::EscapeState es); | 317 void set_escape_state(uint ni, PointsToNode::EscapeState es); |
318 | |
319 // Search for objects which are not scalar replaceable. | |
320 void verify_escape_state(int nidx, VectorSet& ptset, PhaseTransform* phase); | |
317 | 321 |
318 public: | 322 public: |
319 ConnectionGraph(Compile *C); | 323 ConnectionGraph(Compile *C); |
320 | 324 |
321 // Check for non-escaping candidates | 325 // Check for non-escaping candidates |