--- old/src/share/vm/opto/opaquenode.cpp 2015-01-16 19:37:30.000000000 +0300 +++ new/src/share/vm/opto/opaquenode.cpp 2015-01-16 19:37:30.000000000 +0300 @@ -60,4 +60,26 @@ return (&n == this); // Always fail except on self } +//============================================================================= +uint Opaque4Node::hash() const { return NO_HASH; } +uint Opaque4Node::cmp( const Node &n ) const { + return (&n == this); +} + +Node *Opaque4Node::Ideal(PhaseGVN *phase, bool can_reshape) { + if (can_reshape & _delay_removal) { + _delay_removal = false; + return this; + } else { + return NULL; + } +} + +Node *Opaque4Node::Identity( PhaseTransform *phase ) { + if (_delay_removal) { + return this; + } else { + return in(1); + } +}