< prev index next >

src/hotspot/share/opto/escape.hpp

Print this page




 582   void add_local_var_and_edge(Node* n, PointsToNode::EscapeState es, Node* to,
 583                               Unique_Node_List *delayed_worklist) {
 584     PointsToNode* ptn = ptnode_adr(to->_idx);
 585     if (delayed_worklist != NULL) { // First iteration of CG construction
 586       add_local_var(n, es);
 587       if (ptn == NULL) {
 588         delayed_worklist->push(n);
 589         return; // Process it later.
 590       }
 591     } else {
 592       assert(ptn != NULL, "node should be registered");
 593     }
 594     add_edge(ptnode_adr(n->_idx), ptn);
 595   }
 596 
 597   void add_to_congraph_unsafe_access(Node* n, uint opcode, Unique_Node_List* delayed_worklist);
 598   bool add_final_edges_unsafe_access(Node* n, uint opcode);
 599 
 600 #ifndef PRODUCT
 601   void dump(GrowableArray<PointsToNode*>& ptnodes_worklist);
 602   void dump(GrowableArray<PointsToNode*>& ptnodes_worklist);
 603 #endif
 604 };
 605 
 606 inline PointsToNode::PointsToNode(ConnectionGraph *CG, Node* n, EscapeState es, NodeType type):
 607   _edges(CG->_compile->comp_arena(), 2, 0, NULL),
 608   _uses (CG->_compile->comp_arena(), 2, 0, NULL),
 609   _type((u1)type),
 610   _flags(ScalarReplaceable),
 611   _escape((u1)es),
 612   _fields_escape((u1)es),
 613   _node(n),
 614   _idx(n->_idx),
 615   _pidx(CG->next_pidx()) {
 616   assert(n != NULL && es != UnknownEscape, "sanity");
 617 }
 618 
 619 #endif // SHARE_VM_OPTO_ESCAPE_HPP


 582   void add_local_var_and_edge(Node* n, PointsToNode::EscapeState es, Node* to,
 583                               Unique_Node_List *delayed_worklist) {
 584     PointsToNode* ptn = ptnode_adr(to->_idx);
 585     if (delayed_worklist != NULL) { // First iteration of CG construction
 586       add_local_var(n, es);
 587       if (ptn == NULL) {
 588         delayed_worklist->push(n);
 589         return; // Process it later.
 590       }
 591     } else {
 592       assert(ptn != NULL, "node should be registered");
 593     }
 594     add_edge(ptnode_adr(n->_idx), ptn);
 595   }
 596 
 597   void add_to_congraph_unsafe_access(Node* n, uint opcode, Unique_Node_List* delayed_worklist);
 598   bool add_final_edges_unsafe_access(Node* n, uint opcode);
 599 
 600 #ifndef PRODUCT
 601   void dump(GrowableArray<PointsToNode*>& ptnodes_worklist);

 602 #endif
 603 };
 604 
 605 inline PointsToNode::PointsToNode(ConnectionGraph *CG, Node* n, EscapeState es, NodeType type):
 606   _edges(CG->_compile->comp_arena(), 2, 0, NULL),
 607   _uses (CG->_compile->comp_arena(), 2, 0, NULL),
 608   _type((u1)type),
 609   _flags(ScalarReplaceable),
 610   _escape((u1)es),
 611   _fields_escape((u1)es),
 612   _node(n),
 613   _idx(n->_idx),
 614   _pidx(CG->next_pidx()) {
 615   assert(n != NULL && es != UnknownEscape, "sanity");
 616 }
 617 
 618 #endif // SHARE_VM_OPTO_ESCAPE_HPP
< prev index next >