mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
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
1 changed files with 3 additions and 0 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue