--- old/src/share/vm/opto/ifnode.cpp 2015-09-29 14:27:51.319019308 +0200 +++ new/src/share/vm/opto/ifnode.cpp 2015-09-29 14:27:51.151019315 +0200 @@ -1625,6 +1625,19 @@ return this; } +Node* IfProjNode::Ideal(PhaseGVN* phase, bool can_reshape) { + if (in(0)->is_top()) { + return NULL; + } + const TypeTuple* t = phase->type(in(0))->is_tuple(); + if (never_taken(t)) { + // Disconnect never taken branch + set_req(0, phase->C->top()); + return this; + } + return NULL; +} + #ifndef PRODUCT //-------------------------------related--------------------------------------- // An IfProjNode's related node set consists of its input (an IfNode) including