Request for reviews (L): 7125896: Eliminate nested locks

Christian Thalinger christian.thalinger at oracle.com
Fri Dec 30 02:56:08 PST 2011


I think the changes are good.  The only thing I don't like is the raw use of _slot:

+         (BoxLockNode::boxnode(lock->box_node())->_slot ==
+          BoxLockNode::boxnode(unlock->box_node())->_slot)) {

-- Chris

On Dec 29, 2011, at 10:20 PM, Vladimir Kozlov wrote:

> http://cr.openjdk.java.net/~kvn/7125896/webrev
> 
> 7125896: Eliminate nested locks
> 
> Nested locks elimination done before lock nodes expansion by looking for outer locks of the same object. Commoning (GVN) of BoxLock nodes is switched off because nested locks elimination requires separate BoxLock node for each locked region to generated correct debug info for deoptimization. As result there could be merges (and Phi nodes) of BoxLock nodes. One such merge generated by ciTypeFlow (cloning loop head) is avoided but there could be other cases so new code is added to handle it.
> 
> New code is under new product flag EliminateNestedLocks.
> 
> Also added missed KILL effect for box register in fastlock and fastunlock mach nodes definitions.
> 
> Tested with full CTW, nsk, jtreg tests, refworkload.
> 
> Thanks,
> Vladimir



More information about the hotspot-compiler-dev mailing list