Lines Matching defs:to

16  * 2 along with this work; if not, write to the Free Software Foundation,
51 // - PointsTo (-P>) {LV, OF} to JO
52 // - Deferred (-D>) from {LV, OF} to {LV, OF}
53 // - Field (-F>) from JO to OF
58 // point to.
60 // The algorithm describes how to construct the connection graph
72 // to the static memory.
81 // The LoadP, Proj and CheckCastPP behave like variables assigned to only once.
82 // Only a Phi can have multiple assignments. Each input to a Phi is treated
83 // as an assignment to it.
101 // nodes and copying the edges from the target of the deferred edge to the
108 // Then, for each node which is GlobalEscape, anything it could point to
110 // it could point to is marked ArgEscape.
130 GrowableArray<PointsToNode*> _edges; // List of nodes this node points to
131 GrowableArray<PointsToNode*> _uses; // List of nodes which point to this node
138 Node* const _node; // Ideal node corresponding to this PointsTo node.
153 // not passed to call. It could be replaced with scalar.
155 // passed as argument to call or referenced by argument
162 PointsToUnknown = 2, // Has edge to phantom_object
164 ArraycopyDst = 8 // Has edge to Arraycopy node
223 // Mark base edge use to distinguish from stored value edge.
228 // Return true if this node points to specified node or nodes it points to.
231 // Return true if this node points only to non-escaping allocations.
234 // Return true if one node points to an other.
260 GrowableArray<PointsToNode*> _bases; // List of JavaObject nodes which point to this node
262 const bool _is_oop; // Field points to object
279 // Return true if bases points to this java object.
327 GrowableArray<PointsToNode*> _nodes; // Map from ideal nodes to
330 GrowableArray<PointsToNode*> _worklist; // Nodes to be processed
348 // Address of an element in _nodes. Used when the element is to be modified
356 // Add nodes to ConnectionGraph.
362 // Compute the escape state for arguments to a call.
365 // Add PointsToNode node corresponding to a call
368 // Map ideal node to existing PointsTo node (usually phantom_object).
376 // Create PointsToNode node and add it to Connection Graph.
379 // Add final simple edges to graph.
395 // Add all references to this JavaObject node.
440 // Propagate GlobalEscape and ArgEscape escape states to all nodes
457 // Add an edge of the specified type pointing to the specified target.
458 bool add_edge(PointsToNode* from, PointsToNode* to) {
461 if (to == phantom_obj) {
463 return false; // already points to phantom_obj
468 bool is_new = from->add_edge(to);
469 assert(to != phantom_obj || is_new, "sanity");
472 is_new = to->add_use(from);
478 // Add an edge from Field node to its base and back.
479 bool add_base(FieldNode* from, PointsToNode* to) {
480 assert(!to->is_Arraycopy(), "sanity");
481 if (to == phantom_obj) {
487 bool is_new = from->add_base(to);
488 assert(to != phantom_obj || is_new, "sanity");
491 if (to == null_obj)
492 return is_new; // Don't add fields to NULL pointer.
493 if (to->is_JavaObject()) {
494 is_new = to->add_edge(from);
496 is_new = to->add_base_use(from);
504 void add_local_var_and_edge(Node* n, PointsToNode::EscapeState es, Node* to,
506 PointsToNode* ptn = ptnode_adr(to->_idx);
553 void set_map(Node* from, Node* to) {
555 _node_map.map(from->_idx, to);