mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
7074017: Introduce MemBarAcquireLock/MemBarReleaseLock nodes for monitor enter/exit code paths
Replace MemBarAcquire/MemBarRelease nodes on the monitor enter/exit code paths with new MemBarAcquireLock/MemBarReleaseLock nodes Reviewed-by: kvn, twisti
This commit is contained in:
parent
9cd1a00e3f
commit
b543a07b9a
11 changed files with 45 additions and 83 deletions
|
@ -2856,7 +2856,7 @@ FastLockNode* GraphKit::shared_lock(Node* obj) {
|
|||
// lock has no side-effects, sets few values
|
||||
set_predefined_output_for_runtime_call(lock, mem, TypeRawPtr::BOTTOM);
|
||||
|
||||
insert_mem_bar(Op_MemBarAcquire);
|
||||
insert_mem_bar(Op_MemBarAcquireLock);
|
||||
|
||||
// Add this to the worklist so that the lock can be eliminated
|
||||
record_for_igvn(lock);
|
||||
|
@ -2889,7 +2889,7 @@ void GraphKit::shared_unlock(Node* box, Node* obj) {
|
|||
}
|
||||
|
||||
// Memory barrier to avoid floating things down past the locked region
|
||||
insert_mem_bar(Op_MemBarRelease);
|
||||
insert_mem_bar(Op_MemBarReleaseLock);
|
||||
|
||||
const TypeFunc *tf = OptoRuntime::complete_monitor_exit_Type();
|
||||
UnlockNode *unlock = new (C, tf->domain()->cnt()) UnlockNode(C, tf);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue