SUGGESTED FIX
Solution:
- Inline biased locking code in C2 ideal graph during
macro nodes expansion. Use new flag UseOptoBiasInlining to gate
new code. Set the flag ON by default.
- Add new ideal node StoreIConditional and use existing
StoreLConditional node for cas stores into object's mark word.
Fix implementation of StoreLConditional for that.
- Allow tlsLoadP mach node to return a value in any P
register on x86 32-bits (instead of only EAX).
- Added new OR mach node to avoid casting of TLS pointer.
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.
|