< 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 >