src/hotspot/share/opto/node.hpp
changeset 54722 f0bce2f93e72
parent 54701 6b77693eda6a
child 55050 feba48c5dfb4
equal deleted inserted replaced
54721:3661ad97da8f 54722:f0bce2f93e72
   454   }
   454   }
   455   // Reaffirm invariants for is_top.  (Only from Compile::set_cached_top_node.)
   455   // Reaffirm invariants for is_top.  (Only from Compile::set_cached_top_node.)
   456   void setup_is_top();
   456   void setup_is_top();
   457 
   457 
   458   // Strip away casting.  (It is depth-limited.)
   458   // Strip away casting.  (It is depth-limited.)
   459   Node* uncast() const;
   459   Node* uncast(bool keep_deps = false) const;
   460   // Return whether two Nodes are equivalent, after stripping casting.
   460   // Return whether two Nodes are equivalent, after stripping casting.
   461   bool eqv_uncast(const Node* n) const {
   461   bool eqv_uncast(const Node* n, bool keep_deps = false) const {
   462     return (this->uncast() == n->uncast());
   462     return (this->uncast(keep_deps) == n->uncast(keep_deps));
   463   }
   463   }
   464 
   464 
   465   // Find out of current node that matches opcode.
   465   // Find out of current node that matches opcode.
   466   Node* find_out_with(int opcode);
   466   Node* find_out_with(int opcode);
   467   // Return true if the current node has an out that matches opcode.
   467   // Return true if the current node has an out that matches opcode.
   468   bool has_out_with(int opcode);
   468   bool has_out_with(int opcode);
   469   // Return true if the current node has an out that matches any of the opcodes.
   469   // Return true if the current node has an out that matches any of the opcodes.
   470   bool has_out_with(int opcode1, int opcode2, int opcode3, int opcode4);
   470   bool has_out_with(int opcode1, int opcode2, int opcode3, int opcode4);
   471 
   471 
   472 private:
   472 private:
   473   static Node* uncast_helper(const Node* n);
   473   static Node* uncast_helper(const Node* n, bool keep_deps);
   474 
   474 
   475   // Add an output edge to the end of the list
   475   // Add an output edge to the end of the list
   476   void add_out( Node *n ) {
   476   void add_out( Node *n ) {
   477     if (is_top())  return;
   477     if (is_top())  return;
   478     if( _outcnt == _outmax ) out_grow(_outcnt);
   478     if( _outcnt == _outmax ) out_grow(_outcnt);