--- old/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp 2019-03-11 14:25:54.930355310 +0100 +++ new/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp 2019-03-11 14:25:54.698355314 +0100 @@ -1031,7 +1031,7 @@ if (call->is_call_to_arraycopystub()) { Node* dest = NULL; - const TypeTuple* args = n->as_Call()->_tf->domain(); + const TypeTuple* args = n->as_Call()->_tf->domain_sig(); for (uint i = TypeFunc::Parms, j = 0; i < args->cnt(); i++) { if (args->field_at(i)->isa_ptr()) { j++; @@ -1157,7 +1157,7 @@ break; } } - uint stop = n->is_Call() ? n->as_Call()->tf()->domain()->cnt() : n->req(); + uint stop = n->is_Call() ? n->as_Call()->tf()->domain_sig()->cnt() : n->req(); if (i != others_len) { const uint inputs_len = sizeof(others[0].inputs) / sizeof(others[0].inputs[0]); for (uint j = 0; j < inputs_len; j++) { @@ -2314,18 +2314,17 @@ } } else { if (c->is_Call() && c->as_Call()->adr_type() != NULL) { - CallProjections projs; - c->as_Call()->extract_projections(&projs, true, false); - if (projs.fallthrough_memproj != NULL) { - if (projs.fallthrough_memproj->adr_type() == TypePtr::BOTTOM) { - if (projs.catchall_memproj == NULL) { - mem = projs.fallthrough_memproj; + CallProjections* projs = c->as_Call()->extract_projections(true, false); + if (projs->fallthrough_memproj != NULL) { + if (projs->fallthrough_memproj->adr_type() == TypePtr::BOTTOM) { + if (projs->catchall_memproj == NULL) { + mem = projs->fallthrough_memproj; } else { - if (phase->is_dominator(projs.fallthrough_catchproj, ctrl)) { - mem = projs.fallthrough_memproj; + if (phase->is_dominator(projs->fallthrough_catchproj, ctrl)) { + mem = projs->fallthrough_memproj; } else { - assert(phase->is_dominator(projs.catchall_catchproj, ctrl), "one proj must dominate barrier"); - mem = projs.catchall_memproj; + assert(phase->is_dominator(projs->catchall_catchproj, ctrl), "one proj must dominate barrier"); + mem = projs->catchall_memproj; } } } @@ -3758,14 +3757,13 @@ if (n->is_Proj() && n->in(0) != NULL && n->in(0)->is_Call()) { assert(c == n->in(0), ""); CallNode* call = c->as_Call(); - CallProjections projs; - call->extract_projections(&projs, true, false); - if (projs.catchall_memproj != NULL) { - if (projs.fallthrough_memproj == n) { - c = projs.fallthrough_catchproj; + CallProjections* projs = call->extract_projections(true, false); + if (projs->catchall_memproj != NULL) { + if (projs->fallthrough_memproj == n) { + c = projs->fallthrough_catchproj; } else { - assert(projs.catchall_memproj == n, ""); - c = projs.catchall_catchproj; + assert(projs->catchall_memproj == n, ""); + c = projs->catchall_catchproj; } } }