4462 Node* mem = alloc->in(TypeFunc::Memory); |
4462 Node* mem = alloc->in(TypeFunc::Memory); |
4463 if (mem->is_MergeMem()) { |
4463 if (mem->is_MergeMem()) { |
4464 for (MergeMemStream mms(merged_memory(), mem->as_MergeMem()); mms.next_non_empty2(); ) { |
4464 for (MergeMemStream mms(merged_memory(), mem->as_MergeMem()); mms.next_non_empty2(); ) { |
4465 Node* n = mms.memory(); |
4465 Node* n = mms.memory(); |
4466 if (n != mms.memory2() && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4466 if (n != mms.memory2() && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4467 assert(n->is_Store(), "what else?"); |
4467 assert(n->is_Store() || n->Opcode() == Op_ShenandoahWBMemProj, "what else?"); |
4468 no_interfering_store = false; |
4468 no_interfering_store = false; |
4469 break; |
4469 break; |
4470 } |
4470 } |
4471 } |
4471 } |
4472 } else { |
4472 } else { |
4473 for (MergeMemStream mms(merged_memory()); mms.next_non_empty(); ) { |
4473 for (MergeMemStream mms(merged_memory()); mms.next_non_empty(); ) { |
4474 Node* n = mms.memory(); |
4474 Node* n = mms.memory(); |
4475 if (n != mem && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4475 if (n != mem && !(n->is_Proj() && n->in(0) == alloc->initialization())) { |
4476 assert(n->is_Store(), "what else?"); |
4476 assert(n->is_Store() || n->Opcode() == Op_ShenandoahWBMemProj, "what else?"); |
4477 no_interfering_store = false; |
4477 no_interfering_store = false; |
4478 break; |
4478 break; |
4479 } |
4479 } |
4480 } |
4480 } |
4481 } |
4481 } |