Mercurial > hg > graal-compiler
comparison src/share/vm/opto/cfgnode.cpp @ 367:194b8e3a2fc4
6384206: Phis which are later unneeded are impairing our ability to inline based on static types
Reviewed-by: rasbold, jrose
author | never |
---|---|
date | Wed, 17 Sep 2008 12:59:52 -0700 |
parents | 02a35ad4adf8 |
children | 36ccc817fca4 |
comparison
equal
deleted
inserted
replaced
366:8261ee795323 | 367:194b8e3a2fc4 |
---|---|
1663 if (ii->is_MergeMem()) { | 1663 if (ii->is_MergeMem()) { |
1664 MergeMemNode* n = ii->as_MergeMem(); | 1664 MergeMemNode* n = ii->as_MergeMem(); |
1665 // compress paths and change unreachable cycles to TOP | 1665 // compress paths and change unreachable cycles to TOP |
1666 // If not, we can update the input infinitely along a MergeMem cycle | 1666 // If not, we can update the input infinitely along a MergeMem cycle |
1667 // Equivalent code is in MemNode::Ideal_common | 1667 // Equivalent code is in MemNode::Ideal_common |
1668 Node *m = phase->transform(n); | 1668 Node *m = phase->transform(n); |
1669 if (outcnt() == 0) { // Above transform() may kill us! | |
1670 progress = phase->C->top(); | |
1671 break; | |
1672 } | |
1669 // If tranformed to a MergeMem, get the desired slice | 1673 // If tranformed to a MergeMem, get the desired slice |
1670 // Otherwise the returned node represents memory for every slice | 1674 // Otherwise the returned node represents memory for every slice |
1671 Node *new_mem = (m->is_MergeMem()) ? | 1675 Node *new_mem = (m->is_MergeMem()) ? |
1672 m->as_MergeMem()->memory_at(alias_idx) : m; | 1676 m->as_MergeMem()->memory_at(alias_idx) : m; |
1673 // Update input if it is progress over what we have now | 1677 // Update input if it is progress over what we have now |