Request for reviews (M): 6462850: generate biased locking code in C2 ideal graph

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Thu Oct 30 11:20:31 PDT 2008


http://webrev.invokedynamic.info/kvn/6462850/index.html

Fixed 6462850: generate biased locking code in C2 ideal graph

Problem:
Currently biased [un]locking code is the part of the assembler
implementation FastLock/FastUnlock mach nodes.
As result it places a pressure on Register Allocator and
not executed code (from CAS-locking) could be generated
in a hot code path.

Solution:
- Generate biased locking code in C2 ideal graph during
   macro nodes expansion.
- Add new ideal node StoreXConditional for cas stores
   into an object's mark word.
- Allow tlsLoadP mach node to return a value in any P
   register on x86 32-bits (instead of only EAX).

Additional fixes:
- Delay a memory node igvn transformation until its address
   is processed (the fix for the problem described in 6759776).
- Add missing check for the lock code on x86 into
   Assembler::locate_operand().
- Pin a SafePointScalarObject node to the control edge of
   the SafePoint node for which it was generated.
- Fix size's format in OutOfMemoryError message.

Reviewed by:
Fix verified (y/n): y, generated code, improved jbb score on all platforms

Other testing:
JPRT, refworkload



More information about the hotspot-compiler-dev mailing list