< prev index next >
src/share/vm/opto/cfgnode.cpp
Print this page
*** 1663,1673 ****
return top;
}
bool uncasted = false;
Node* uin = unique_input(phase, false);
! if (uin == NULL) {
uncasted = true;
uin = unique_input(phase, true);
}
if (uin == top) { // Simplest case: no alive inputs.
if (can_reshape) // IGVN transformation
--- 1663,1673 ----
return top;
}
bool uncasted = false;
Node* uin = unique_input(phase, false);
! if (uin == NULL && can_reshape) {
uncasted = true;
uin = unique_input(phase, true);
}
if (uin == top) { // Simplest case: no alive inputs.
if (can_reshape) // IGVN transformation
*** 1700,1709 ****
--- 1700,1711 ----
}
}
}
if (uncasted) {
+ // Wait until after parsing for the type information to propagate from the casts
+ assert(can_reshape, "Invalid during parsing");
const Type* phi_type = bottom_type();
assert(phi_type->isa_int() || phi_type->isa_ptr(), "bad phi type");
int opcode;
if (phi_type->isa_int()) {
opcode = Op_CastII;
< prev index next >