< 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 >