Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/connode.cpp @ 995:ddd6f1182ae3
6883468: C2 compiler enters infinite loop in PhaseIterGVN::transform
Summary: Avoid ideal transformation ping-pong between AddPNode::Ideal() and CastX2PNode::Ideal().
Reviewed-by: cfang
author | kvn |
---|---|
date | Fri, 25 Sep 2009 13:26:02 -0700 |
parents | bd02caa94611 |
children | c18cbe5936b8 3657cb01ffc5 |
comparison
equal
deleted
inserted
replaced
994:753cf9794df9 | 995:ddd6f1182ae3 |
---|---|
1083 Node* x; | 1083 Node* x; |
1084 Node* y; | 1084 Node* y; |
1085 switch (op) { | 1085 switch (op) { |
1086 case Op_SubX: | 1086 case Op_SubX: |
1087 x = in(1)->in(1); | 1087 x = in(1)->in(1); |
1088 // Avoid ideal transformations ping-pong between this and AddP for raw pointers. | |
1089 if (phase->find_intptr_t_con(x, -1) == 0) | |
1090 break; | |
1088 y = in(1)->in(2); | 1091 y = in(1)->in(2); |
1089 if (fits_in_int(phase->type(y), true)) { | 1092 if (fits_in_int(phase->type(y), true)) { |
1090 return addP_of_X2P(phase, x, y, true); | 1093 return addP_of_X2P(phase, x, y, true); |
1091 } | 1094 } |
1092 break; | 1095 break; |