Skip to content
Permalink
Browse files
8262299: C2 compilation fails with "modified node was not processed b…
…y IGVN.transform_old()"

Reviewed-by: roland, chagedorn
  • Loading branch information
TobiHartmann committed Feb 25, 2021
1 parent 0f8be6e commit a83e802bcefa238e03ebdbe5a710c65117b18978
Showing 1 changed file with 6 additions and 4 deletions.
@@ -183,15 +183,17 @@ Node* ArrayCopyNode::try_clone_instance(PhaseGVN *phase, bool can_reshape, int c
Node* in_mem = in(TypeFunc::Memory);

const Type* src_type = phase->type(base_src);

MergeMemNode* mem = phase->transform(MergeMemNode::make(in_mem))->as_MergeMem();

const TypeInstPtr* inst_src = src_type->isa_instptr();

if (inst_src == NULL) {
return NULL;
}

MergeMemNode* mem = phase->transform(MergeMemNode::make(in_mem))->as_MergeMem();
PhaseIterGVN* igvn = phase->is_IterGVN();
if (igvn != NULL) {
igvn->_worklist.push(mem);
}

if (!inst_src->klass_is_exact()) {
ciInstanceKlass* ik = inst_src->klass()->as_instance_klass();
assert(!ik->is_interface() && !ik->has_subklass(), "inconsistent klass hierarchy");

0 comments on commit a83e802

Please sign in to comment.