diff -r c7ec868d0923 -r a8f29dfd62b2 hotspot/src/share/vm/opto/cfgnode.hpp --- a/hotspot/src/share/vm/opto/cfgnode.hpp Fri Dec 18 20:23:28 2015 +0300 +++ b/hotspot/src/share/vm/opto/cfgnode.hpp Fri Dec 11 16:57:08 2015 +0100 @@ -175,7 +175,14 @@ // Determine a unique non-trivial input, if any. // Ignore casts if it helps. Return NULL on failure. - Node* unique_input(PhaseTransform *phase); + Node* unique_input(PhaseTransform *phase, bool uncast); + Node* unique_input(PhaseTransform *phase) { + Node* uin = unique_input(phase, false); + if (uin == NULL) { + uin = unique_input(phase, true); + } + return uin; + } // Check for a simple dead loop. enum LoopSafety { Safe = 0, Unsafe, UnsafeLoop };