< prev index next >

src/hotspot/share/opto/node.hpp

Print this page




 981   // Check if 'this' node dominates or equal to 'sub'.
 982   bool dominates(Node* sub, Node_List &nlist);
 983 
 984 protected:
 985   bool remove_dead_region(PhaseGVN *phase, bool can_reshape);
 986 public:
 987 
 988   // See if there is valid pipeline info
 989   static  const Pipeline *pipeline_class();
 990   virtual const Pipeline *pipeline() const;
 991 
 992   // Compute the latency from the def to this instruction of the ith input node
 993   uint latency(uint i);
 994 
 995   // Hash & compare functions, for pessimistic value numbering
 996 
 997   // If the hash function returns the special sentinel value NO_HASH,
 998   // the node is guaranteed never to compare equal to any other node.
 999   // If we accidentally generate a hash with value NO_HASH the node
1000   // won't go into the table and we'll lose a little optimization.
1001   enum { NO_HASH = 0 };
1002   virtual uint hash() const;
1003   virtual bool cmp( const Node &n ) const;
1004 
1005   // Operation appears to be iteratively computed (such as an induction variable)
1006   // It is possible for this operation to return false for a loop-varying
1007   // value, if it appears (by local graph inspection) to be computed by a simple conditional.
1008   bool is_iteratively_computed();
1009 
1010   // Determine if a node is a counted loop induction variable.
1011   // NOTE: The method is defined in "loopnode.cpp".
1012   bool is_cloop_ind_var() const;
1013 
1014   // Return a node with opcode "opc" and same inputs as "this" if one can
1015   // be found; Otherwise return NULL;
1016   Node* find_similar(int opc);
1017 
1018   // Return the unique control out if only one. Null if none or more than one.
1019   Node* unique_ctrl_out() const;
1020 
1021   // Set control or add control as precedence edge




 981   // Check if 'this' node dominates or equal to 'sub'.
 982   bool dominates(Node* sub, Node_List &nlist);
 983 
 984 protected:
 985   bool remove_dead_region(PhaseGVN *phase, bool can_reshape);
 986 public:
 987 
 988   // See if there is valid pipeline info
 989   static  const Pipeline *pipeline_class();
 990   virtual const Pipeline *pipeline() const;
 991 
 992   // Compute the latency from the def to this instruction of the ith input node
 993   uint latency(uint i);
 994 
 995   // Hash & compare functions, for pessimistic value numbering
 996 
 997   // If the hash function returns the special sentinel value NO_HASH,
 998   // the node is guaranteed never to compare equal to any other node.
 999   // If we accidentally generate a hash with value NO_HASH the node
1000   // won't go into the table and we'll lose a little optimization.
1001   static const uint NO_HASH = 0;
1002   virtual uint hash() const;
1003   virtual bool cmp( const Node &n ) const;
1004 
1005   // Operation appears to be iteratively computed (such as an induction variable)
1006   // It is possible for this operation to return false for a loop-varying
1007   // value, if it appears (by local graph inspection) to be computed by a simple conditional.
1008   bool is_iteratively_computed();
1009 
1010   // Determine if a node is a counted loop induction variable.
1011   // NOTE: The method is defined in "loopnode.cpp".
1012   bool is_cloop_ind_var() const;
1013 
1014   // Return a node with opcode "opc" and same inputs as "this" if one can
1015   // be found; Otherwise return NULL;
1016   Node* find_similar(int opc);
1017 
1018   // Return the unique control out if only one. Null if none or more than one.
1019   Node* unique_ctrl_out() const;
1020 
1021   // Set control or add control as precedence edge


< prev index next >