4483 Node* mem = alloc->in(TypeFunc::Memory); |
4483 Node* mem = alloc->in(TypeFunc::Memory); |
4484 if (mem->is_MergeMem()) { |
4484 if (mem->is_MergeMem()) { |
4485 for (MergeMemStream mms(merged_memory(), mem->as_MergeMem()); mms.next_non_empty2(); ) { |
4485 for (MergeMemStream mms(merged_memory(), mem->as_MergeMem()); mms.next_non_empty2(); ) { |
4486 Node* n = mms.memory(); |
4486 Node* n = mms.memory(); |
4487 if (n != mms.memory2() && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4487 if (n != mms.memory2() && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4488 assert(n->is_Store() || n->Opcode() == Op_ShenandoahWBMemProj, "what else?"); |
4488 assert(n->is_Store(), "what else?"); |
4489 no_interfering_store = false; |
4489 no_interfering_store = false; |
4490 break; |
4490 break; |
4491 } |
4491 } |
4492 } |
4492 } |
4493 } else { |
4493 } else { |
4494 for (MergeMemStream mms(merged_memory()); mms.next_non_empty(); ) { |
4494 for (MergeMemStream mms(merged_memory()); mms.next_non_empty(); ) { |
4495 Node* n = mms.memory(); |
4495 Node* n = mms.memory(); |
4496 if (n != mem && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4496 if (n != mem && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4497 assert(n->is_Store() || n->Opcode() == Op_ShenandoahWBMemProj, "what else?"); |
4497 assert(n->is_Store(), "what else?"); |
4498 no_interfering_store = false; |
4498 no_interfering_store = false; |
4499 break; |
4499 break; |
4500 } |
4500 } |
4501 } |
4501 } |
4502 } |
4502 } |