mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
7032314: Allow to generate CallLeafNoFPNode in IdealKit
Added CallLeafNoFPNode generation to IdealKit. Added i_o synchronization. Reviewed-by: never
This commit is contained in:
parent
5cd8d5c115
commit
68f1177f59
5 changed files with 129 additions and 34 deletions
|
@ -3385,10 +3385,15 @@ void GraphKit::add_predicate(int nargs) {
|
|||
#define __ ideal.
|
||||
|
||||
void GraphKit::sync_kit(IdealKit& ideal) {
|
||||
set_all_memory(__ merged_memory());
|
||||
set_i_o(__ i_o());
|
||||
set_control(__ ctrl());
|
||||
}
|
||||
|
||||
void GraphKit::final_sync(IdealKit& ideal) {
|
||||
// Final sync IdealKit and graphKit.
|
||||
__ drain_delay_transform();
|
||||
set_all_memory(__ merged_memory());
|
||||
set_control(__ ctrl());
|
||||
sync_kit(ideal);
|
||||
}
|
||||
|
||||
// vanilla/CMS post barrier
|
||||
|
@ -3435,7 +3440,7 @@ void GraphKit::write_barrier_post(Node* oop_store,
|
|||
// (Else it's an array (or unknown), and we want more precise card marks.)
|
||||
assert(adr != NULL, "");
|
||||
|
||||
IdealKit ideal(gvn(), control(), merged_memory(), true);
|
||||
IdealKit ideal(this, true);
|
||||
|
||||
// Convert the pointer to an int prior to doing math on it
|
||||
Node* cast = __ CastPX(__ ctrl(), adr);
|
||||
|
@ -3461,7 +3466,7 @@ void GraphKit::write_barrier_post(Node* oop_store,
|
|||
}
|
||||
|
||||
// Final sync IdealKit and GraphKit.
|
||||
sync_kit(ideal);
|
||||
final_sync(ideal);
|
||||
}
|
||||
|
||||
// G1 pre/post barriers
|
||||
|
@ -3471,7 +3476,7 @@ void GraphKit::g1_write_barrier_pre(Node* obj,
|
|||
Node* val,
|
||||
const TypeOopPtr* val_type,
|
||||
BasicType bt) {
|
||||
IdealKit ideal(gvn(), control(), merged_memory(), true);
|
||||
IdealKit ideal(this, true);
|
||||
|
||||
Node* tls = __ thread(); // ThreadLocalStorage
|
||||
|
||||
|
@ -3548,7 +3553,7 @@ void GraphKit::g1_write_barrier_pre(Node* obj,
|
|||
} __ end_if(); // (!marking)
|
||||
|
||||
// Final sync IdealKit and GraphKit.
|
||||
sync_kit(ideal);
|
||||
final_sync(ideal);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -3614,7 +3619,7 @@ void GraphKit::g1_write_barrier_post(Node* oop_store,
|
|||
// (Else it's an array (or unknown), and we want more precise card marks.)
|
||||
assert(adr != NULL, "");
|
||||
|
||||
IdealKit ideal(gvn(), control(), merged_memory(), true);
|
||||
IdealKit ideal(this, true);
|
||||
|
||||
Node* tls = __ thread(); // ThreadLocalStorage
|
||||
|
||||
|
@ -3688,6 +3693,6 @@ void GraphKit::g1_write_barrier_post(Node* oop_store,
|
|||
}
|
||||
|
||||
// Final sync IdealKit and GraphKit.
|
||||
sync_kit(ideal);
|
||||
final_sync(ideal);
|
||||
}
|
||||
#undef __
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue