< prev index next >
src/share/vm/opto/split_if.cpp
Print this page
*** 188,198 ****
// ConvI2L may have type information on it which becomes invalid if
// it moves up in the graph so change any clones so widen the type
// to TypeLong::INT when pushing it up.
const Type* rtype = NULL;
! if (n->Opcode() == Op_ConvI2L && n->bottom_type() != TypeLong::INT) {
rtype = TypeLong::INT;
}
// Now actually split-up this guy. One copy per control path merging.
Node *phi = PhiNode::make_blank(blk1, n);
--- 188,198 ----
// ConvI2L may have type information on it which becomes invalid if
// it moves up in the graph so change any clones so widen the type
// to TypeLong::INT when pushing it up.
const Type* rtype = NULL;
! if (n->Opcode() == Opcodes::Op_ConvI2L && n->bottom_type() != TypeLong::INT) {
rtype = TypeLong::INT;
}
// Now actually split-up this guy. One copy per control path merging.
Node *phi = PhiNode::make_blank(blk1, n);
*** 453,463 ****
// paths. This makes 'new_iff' go dead.
Node *old_false = NULL, *old_true = NULL;
Node *new_false = NULL, *new_true = NULL;
for (DUIterator_Last j2min, j2 = iff->last_outs(j2min); j2 >= j2min; --j2) {
Node *ifp = iff->last_out(j2);
! assert( ifp->Opcode() == Op_IfFalse || ifp->Opcode() == Op_IfTrue, "" );
ifp->set_req(0, new_iff);
Node *ifpx = split_thru_region( ifp, region );
// Replace 'If' projection of a Region with a Region of
// 'If' projections.
--- 453,463 ----
// paths. This makes 'new_iff' go dead.
Node *old_false = NULL, *old_true = NULL;
Node *new_false = NULL, *new_true = NULL;
for (DUIterator_Last j2min, j2 = iff->last_outs(j2min); j2 >= j2min; --j2) {
Node *ifp = iff->last_out(j2);
! assert( ifp->Opcode() == Opcodes::Op_IfFalse || ifp->Opcode() == Opcodes::Op_IfTrue, "" );
ifp->set_req(0, new_iff);
Node *ifpx = split_thru_region( ifp, region );
// Replace 'If' projection of a Region with a Region of
// 'If' projections.
*** 474,484 ****
new_iff->set_req(0, new_iff); // hook self so it does not go dead
lazy_replace(ifp, ifpx);
new_iff->set_req(0, region);
// Record bits for later xforms
! if( ifp->Opcode() == Op_IfFalse ) {
old_false = ifp;
new_false = ifpx;
} else {
old_true = ifp;
new_true = ifpx;
--- 474,484 ----
new_iff->set_req(0, new_iff); // hook self so it does not go dead
lazy_replace(ifp, ifpx);
new_iff->set_req(0, region);
// Record bits for later xforms
! if( ifp->Opcode() == Opcodes::Op_IfFalse ) {
old_false = ifp;
new_false = ifpx;
} else {
old_true = ifp;
new_true = ifpx;
< prev index next >