< prev index next >

src/share/vm/opto/phaseX.hpp

Print this page

        

*** 188,197 **** --- 188,199 ---- Arena* arena() { return _arena; } Type_Array& types() { return _types; } // _nodes is used in varying ways by subclasses, which define local accessors public: + virtual PhaseIterGVN *is_IterGVN() { return 0; } + // Get a previously recorded type for the node n. // This type must already have been recorded. // If you want the type of a very new (untransformed) node, // you must use type_or_null, and test the result for NULL. const Type* type(const Node* n) const {
*** 255,265 **** virtual Node *transform( Node *n ) = 0; // Return whether two Nodes are equivalent. // Must not be recursive, since the recursive version is built from this. // For pessimistic optimizations this is simply pointer equivalence. ! bool eqv(const Node* n1, const Node* n2) const { return n1 == n2; } // For pessimistic passes, the return type must monotonically narrow. // For optimistic passes, the return type must monotonically widen. // It is possible to get into a "death march" in either type of pass, // where the types are continually moving but it will take 2**31 or --- 257,267 ---- virtual Node *transform( Node *n ) = 0; // Return whether two Nodes are equivalent. // Must not be recursive, since the recursive version is built from this. // For pessimistic optimizations this is simply pointer equivalence. ! bool eqv(const Node* n1, const Node* n2) const; // For pessimistic passes, the return type must monotonically narrow. // For optimistic passes, the return type must monotonically widen. // It is possible to get into a "death march" in either type of pass, // where the types are continually moving but it will take 2**31 or
< prev index next >