6883468: C2 compiler enters infinite loop in PhaseIterGVN::transform
Avoid ideal transformation ping-pong between AddPNode::Ideal() and CastX2PNode::Ideal(). Reviewed-by: cfang
This commit is contained in:
parent
eb73cf4739
commit
7e942d79d0
@ -1085,6 +1085,9 @@ Node *CastX2PNode::Ideal(PhaseGVN *phase, bool can_reshape) {
|
||||
switch (op) {
|
||||
case Op_SubX:
|
||||
x = in(1)->in(1);
|
||||
// Avoid ideal transformations ping-pong between this and AddP for raw pointers.
|
||||
if (phase->find_intptr_t_con(x, -1) == 0)
|
||||
break;
|
||||
y = in(1)->in(2);
|
||||
if (fits_in_int(phase->type(y), true)) {
|
||||
return addP_of_X2P(phase, x, y, true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user