< prev index next >

src/share/vm/opto/memnode.cpp

Print this page
@  rev 9077 : 8233023: assert(Opcode() == mem->Opcode() || phase->C->get_alias_index(adr_type()) == Compile::AliasIdxRaw) failed: no mismatched stores, except on raw memory
|  Summary: Include missing verification code from JDK-8140309 backport
~  Reviewed-by: duke

@@ -2483,11 +2483,13 @@
       mem->Opcode() != Op_StoreCM) {
     // Looking at a dead closed cycle of memory?
     assert(mem != mem->in(MemNode::Memory), "dead loop in StoreNode::Ideal");
 
     assert(Opcode() == mem->Opcode() ||
-           phase->C->get_alias_index(adr_type()) == Compile::AliasIdxRaw,
+           phase->C->get_alias_index(adr_type()) == Compile::AliasIdxRaw ||
+           (Opcode() == Op_StoreL && mem->Opcode() == Op_StoreI) || // expanded ClearArrayNode
+           (is_mismatched_access() || mem->as_Store()->is_mismatched_access()),
            "no mismatched stores, except on raw memory");
 
     if (mem->outcnt() == 1 &&           // check for intervening uses
         mem->as_Store()->memory_size() <= this->memory_size()) {
       // If anybody other than 'this' uses 'mem', we cannot fold 'mem' away.
< prev index next >