src/share/vm/opto/graphKit.cpp

Print this page
rev 2570 : imported patch membar2
rev 2571 : [mq]: membar3

*** 2854,2864 **** lock = _gvn.transform( lock )->as_Lock(); // lock has no side-effects, sets few values set_predefined_output_for_runtime_call(lock, mem, TypeRawPtr::BOTTOM); ! insert_mem_bar(Op_MemBarAcquire); // Add this to the worklist so that the lock can be eliminated record_for_igvn(lock); #ifndef PRODUCT --- 2854,2864 ---- lock = _gvn.transform( lock )->as_Lock(); // lock has no side-effects, sets few values set_predefined_output_for_runtime_call(lock, mem, TypeRawPtr::BOTTOM); ! insert_mem_bar(Op_MemBarAcquireLock); // Add this to the worklist so that the lock can be eliminated record_for_igvn(lock); #ifndef PRODUCT
*** 2887,2897 **** map()->pop_monitor(); // Kill monitor from debug info return; } // Memory barrier to avoid floating things down past the locked region ! insert_mem_bar(Op_MemBarRelease); const TypeFunc *tf = OptoRuntime::complete_monitor_exit_Type(); UnlockNode *unlock = new (C, tf->domain()->cnt()) UnlockNode(C, tf); uint raw_idx = Compile::AliasIdxRaw; unlock->init_req( TypeFunc::Control, control() ); --- 2887,2897 ---- map()->pop_monitor(); // Kill monitor from debug info return; } // Memory barrier to avoid floating things down past the locked region ! insert_mem_bar(Op_MemBarReleaseLock); const TypeFunc *tf = OptoRuntime::complete_monitor_exit_Type(); UnlockNode *unlock = new (C, tf->domain()->cnt()) UnlockNode(C, tf); uint raw_idx = Compile::AliasIdxRaw; unlock->init_req( TypeFunc::Control, control() );