Mercurial > hg > truffle
comparison src/share/vm/opto/phaseX.cpp @ 20681:4c228230f1d6
8066045: opto/node.hpp:355, assert(i < _max) failed: oob: i=1, _max=1
Summary: code in PhaseIterGVN::add_users_to_worklist() from 8054478 makes incorrect assumption about graph shape
Reviewed-by: iveresov
author | roland |
---|---|
date | Thu, 27 Nov 2014 16:54:49 +0100 |
parents | 5b8e0f84f00f |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20680:5b8e0f84f00f | 20681:4c228230f1d6 |
---|---|
1377 for (uint i = 0; i < in1->outcnt(); i++) { | 1377 for (uint i = 0; i < in1->outcnt(); i++) { |
1378 if (in1->raw_out(i)->Opcode() == Op_CastII) { | 1378 if (in1->raw_out(i)->Opcode() == Op_CastII) { |
1379 Node* castii = in1->raw_out(i); | 1379 Node* castii = in1->raw_out(i); |
1380 if (castii->in(0) != NULL && castii->in(0)->in(0) != NULL && castii->in(0)->in(0)->is_If()) { | 1380 if (castii->in(0) != NULL && castii->in(0)->in(0) != NULL && castii->in(0)->in(0)->is_If()) { |
1381 Node* ifnode = castii->in(0)->in(0); | 1381 Node* ifnode = castii->in(0)->in(0); |
1382 if (ifnode->in(1) != NULL && ifnode->in(1)->in(1) == use) { | 1382 if (ifnode->in(1) != NULL && ifnode->in(1)->is_Bool() && ifnode->in(1)->in(1) == use) { |
1383 // Reprocess a CastII node that may depend on an | 1383 // Reprocess a CastII node that may depend on an |
1384 // opaque node value when the opaque node is | 1384 // opaque node value when the opaque node is |
1385 // removed. In case it carries a dependency we can do | 1385 // removed. In case it carries a dependency we can do |
1386 // a better job of computing its type. | 1386 // a better job of computing its type. |
1387 _worklist.push(castii); | 1387 _worklist.push(castii); |