< prev index next >

src/share/vm/opto/ifnode.cpp

Print this page

        

*** 1623,1632 **** --- 1623,1645 ---- } // no progress 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 // the IfNode's condition, plus all of its outputs at level 1. In compact mode, // the restrictions for IfNode apply (see IfNode::rel).
< prev index next >