Mercurial > hg > truffle
diff src/share/vm/opto/escape.cpp @ 588:ef3b3df478b9
Merge
author | trims |
---|---|
date | Wed, 25 Feb 2009 22:55:54 -0800 |
parents | 49a36a80b0c7 |
children | 98cb887364d3 |
line wrap: on
line diff
--- a/src/share/vm/opto/escape.cpp Wed Feb 18 18:20:02 2009 -0800 +++ b/src/share/vm/opto/escape.cpp Wed Feb 25 22:55:54 2009 -0800 @@ -756,6 +756,16 @@ } else { break; } + } else if (result->Opcode() == Op_SCMemProj) { + assert(result->in(0)->is_LoadStore(), "sanity"); + const Type *at = phase->type(result->in(0)->in(MemNode::Address)); + if (at != Type::TOP) { + assert (at->isa_ptr() != NULL, "pointer type required."); + int idx = C->get_alias_index(at->is_ptr()); + assert(idx != alias_idx, "Object is not scalar replaceable if a LoadStore node access its field"); + break; + } + result = result->in(0)->in(MemNode::Memory); } } if (result->is_Phi()) {