mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
8005031: Some cleanup in c2 to prepare for incremental inlining support
Collection of small changes to prepare for incremental inlining. Reviewed-by: twisti, kvn
This commit is contained in:
parent
fb74718339
commit
b1c3e5ccc6
14 changed files with 221 additions and 96 deletions
|
@ -1771,11 +1771,21 @@ void GraphKit::replace_call(CallNode* call, Node* result) {
|
|||
CallProjections callprojs;
|
||||
call->extract_projections(&callprojs, true);
|
||||
|
||||
// Replace all the old call edges with the edges from the inlining result
|
||||
C->gvn_replace_by(callprojs.fallthrough_catchproj, final_state->in(TypeFunc::Control));
|
||||
C->gvn_replace_by(callprojs.fallthrough_memproj, final_state->in(TypeFunc::Memory));
|
||||
C->gvn_replace_by(callprojs.fallthrough_ioproj, final_state->in(TypeFunc::I_O));
|
||||
Node* init_mem = call->in(TypeFunc::Memory);
|
||||
Node* final_mem = final_state->in(TypeFunc::Memory);
|
||||
Node* final_ctl = final_state->in(TypeFunc::Control);
|
||||
Node* final_io = final_state->in(TypeFunc::I_O);
|
||||
|
||||
// Replace all the old call edges with the edges from the inlining result
|
||||
if (callprojs.fallthrough_catchproj != NULL) {
|
||||
C->gvn_replace_by(callprojs.fallthrough_catchproj, final_ctl);
|
||||
}
|
||||
if (callprojs.fallthrough_memproj != NULL) {
|
||||
C->gvn_replace_by(callprojs.fallthrough_memproj, final_mem);
|
||||
}
|
||||
if (callprojs.fallthrough_ioproj != NULL) {
|
||||
C->gvn_replace_by(callprojs.fallthrough_ioproj, final_io);
|
||||
}
|
||||
|
||||
// Replace the result with the new result if it exists and is used
|
||||
if (callprojs.resproj != NULL && result != NULL) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue