comparison src/share/vm/opto/cfgnode.cpp @ 4778:35acf8f0a2e4

7128352: assert(obj_node == obj) failed Summary: Compare uncasted object nodes. Reviewed-by: never
author kvn
date Tue, 10 Jan 2012 18:05:38 -0800
parents 8c57262447d3
children da91efe96a93
comparison
equal deleted inserted replaced
4777:e9a5e0a812c8 4778:35acf8f0a2e4
1595 // is removed in PhaseIdealLoop::Dominators(). 1595 // is removed in PhaseIdealLoop::Dominators().
1596 assert(!r->is_Loop() || r->req() <= 3, "Loop node should have 3 or less inputs"); 1596 assert(!r->is_Loop() || r->req() <= 3, "Loop node should have 3 or less inputs");
1597 bool is_loop = (r->is_Loop() && r->req() == 3); 1597 bool is_loop = (r->is_Loop() && r->req() == 3);
1598 // Then, check if there is a data loop when phi references itself directly 1598 // Then, check if there is a data loop when phi references itself directly
1599 // or through other data nodes. 1599 // or through other data nodes.
1600 if (is_loop && !phase->eqv_uncast(uin, in(LoopNode::EntryControl)) || 1600 if (is_loop && !uin->eqv_uncast(in(LoopNode::EntryControl)) ||
1601 !is_loop && is_unsafe_data_reference(uin)) { 1601 !is_loop && is_unsafe_data_reference(uin)) {
1602 // Break this data loop to avoid creation of a dead loop. 1602 // Break this data loop to avoid creation of a dead loop.
1603 if (can_reshape) { 1603 if (can_reshape) {
1604 return top; 1604 return top;
1605 } else { 1605 } else {