Mercurial > hg > graal-compiler
comparison src/share/vm/opto/connode.cpp @ 20708:d9e22e15d3f6
8066775: opto/node.hpp:355, assert(i < _max) failed: oob: i=1, _max=1
Summary: bad assumption on graph shape in CastIINode::Value if that part of the graph is becoming dead.
Reviewed-by: kvn
author | roland |
---|---|
date | Fri, 05 Dec 2014 18:03:15 +0100 |
parents | 5b8e0f84f00f |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20707:e3d0aaab84aa | 20708:d9e22e15d3f6 |
---|---|
460 const Type *res = ConstraintCastNode::Value(phase); | 460 const Type *res = ConstraintCastNode::Value(phase); |
461 | 461 |
462 // Try to improve the type of the CastII if we recognize a CmpI/If | 462 // Try to improve the type of the CastII if we recognize a CmpI/If |
463 // pattern. | 463 // pattern. |
464 if (_carry_dependency) { | 464 if (_carry_dependency) { |
465 if (in(0) != NULL && (in(0)->is_IfFalse() || in(0)->is_IfTrue())) { | 465 if (in(0) != NULL && in(0)->in(0) != NULL && in(0)->in(0)->is_If()) { |
466 assert(in(0)->is_IfFalse() || in(0)->is_IfTrue(), "should be If proj"); | |
466 Node* proj = in(0); | 467 Node* proj = in(0); |
467 if (proj->in(0)->in(1)->is_Bool()) { | 468 if (proj->in(0)->in(1)->is_Bool()) { |
468 Node* b = proj->in(0)->in(1); | 469 Node* b = proj->in(0)->in(1); |
469 if (b->in(1)->Opcode() == Op_CmpI) { | 470 if (b->in(1)->Opcode() == Op_CmpI) { |
470 Node* cmp = b->in(1); | 471 Node* cmp = b->in(1); |