Mercurial > hg > truffle
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 { |