src/share/vm/opto/opaquenode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/opaquenode.cpp	Wed Nov 12 11:02:00 2014
--- new/src/share/vm/opto/opaquenode.cpp	Wed Nov 12 11:02:00 2014

*** 21,48 **** --- 21,49 ---- * questions. * */ #include "precompiled.hpp" + #include "opto/loopnode.hpp" #include "opto/opaquenode.hpp" #include "opto/phaseX.hpp" //============================================================================= // Do not allow value-numbering uint Opaque1Node::hash() const { return NO_HASH; } ! uint Opaque1Node::cmp( const Node &n ) const { return (&n == this); // Always fail except on self } //------------------------------Identity--------------------------------------- // If _major_progress, then more loop optimizations follow. Do NOT remove // the opaque Node until no more loop ops can happen. Note the timing of // _major_progress; it's set in the major loop optimizations THEN comes the // call to IterGVN and any chance of hitting this code. Hence there's no // phase-ordering problem with stripping Opaque1 in IGVN followed by some // more loop optimizations that require it. ! Node *Opaque1Node::Identity( PhaseTransform *phase ) { return phase->C->major_progress() ? this : in(1); } //============================================================================= // A node to prevent unwanted optimizations. Allows constant folding. Stops

src/share/vm/opto/opaquenode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File