< prev index next >

src/hotspot/share/opto/node.hpp

Print this page
rev 52273 : Purge some G1-related cruft in C2


 969   // Return the set of values this Node can take on at runtime.
 970   virtual const Type* Value(PhaseGVN* phase) const;
 971 
 972   // Return a node which is more "ideal" than the current node.
 973   // The invariants on this call are subtle.  If in doubt, read the
 974   // treatise in node.cpp above the default implemention AND TEST WITH
 975   // +VerifyIterativeGVN!
 976   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 977 
 978   // Some nodes have specific Ideal subgraph transformations only if they are
 979   // unique users of specific nodes. Such nodes should be put on IGVN worklist
 980   // for the transformations to happen.
 981   bool has_special_unique_user() const;
 982 
 983   // Skip Proj and CatchProj nodes chains. Check for Null and Top.
 984   Node* find_exact_control(Node* ctrl);
 985 
 986   // Check if 'this' node dominates or equal to 'sub'.
 987   bool dominates(Node* sub, Node_List &nlist);
 988 
 989   virtual bool is_g1_marking_load() const { return false; }
 990   virtual bool is_g1_marking_if(PhaseTransform *phase) const { return false; }
 991   virtual bool is_shenandoah_wb_pre_call() const { return false; }
 992   virtual bool is_shenandoah_state_load() const { return false; }
 993   virtual bool is_shenandoah_marking_if(PhaseTransform *phase) const { return false; }
 994 
 995 protected:
 996   bool remove_dead_region(PhaseGVN *phase, bool can_reshape);
 997 public:
 998 
 999   // See if there is valid pipeline info
1000   static  const Pipeline *pipeline_class();
1001   virtual const Pipeline *pipeline() const;
1002 
1003   // Compute the latency from the def to this instruction of the ith input node
1004   uint latency(uint i);
1005 
1006   // Hash & compare functions, for pessimistic value numbering
1007 
1008   // If the hash function returns the special sentinel value NO_HASH,
1009   // the node is guaranteed never to compare equal to any other node.
1010   // If we accidentally generate a hash with value NO_HASH the node




 969   // Return the set of values this Node can take on at runtime.
 970   virtual const Type* Value(PhaseGVN* phase) const;
 971 
 972   // Return a node which is more "ideal" than the current node.
 973   // The invariants on this call are subtle.  If in doubt, read the
 974   // treatise in node.cpp above the default implemention AND TEST WITH
 975   // +VerifyIterativeGVN!
 976   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 977 
 978   // Some nodes have specific Ideal subgraph transformations only if they are
 979   // unique users of specific nodes. Such nodes should be put on IGVN worklist
 980   // for the transformations to happen.
 981   bool has_special_unique_user() const;
 982 
 983   // Skip Proj and CatchProj nodes chains. Check for Null and Top.
 984   Node* find_exact_control(Node* ctrl);
 985 
 986   // Check if 'this' node dominates or equal to 'sub'.
 987   bool dominates(Node* sub, Node_List &nlist);
 988 


 989   virtual bool is_shenandoah_wb_pre_call() const { return false; }
 990   virtual bool is_shenandoah_state_load() const { return false; }
 991   virtual bool is_shenandoah_marking_if(PhaseTransform *phase) const { return false; }
 992 
 993 protected:
 994   bool remove_dead_region(PhaseGVN *phase, bool can_reshape);
 995 public:
 996 
 997   // See if there is valid pipeline info
 998   static  const Pipeline *pipeline_class();
 999   virtual const Pipeline *pipeline() const;
1000 
1001   // Compute the latency from the def to this instruction of the ith input node
1002   uint latency(uint i);
1003 
1004   // Hash & compare functions, for pessimistic value numbering
1005 
1006   // If the hash function returns the special sentinel value NO_HASH,
1007   // the node is guaranteed never to compare equal to any other node.
1008   // If we accidentally generate a hash with value NO_HASH the node


< prev index next >