Mercurial > hg > truffle
comparison src/share/vm/opto/loopTransform.cpp @ 17780:606acabe7b5c
8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed
author | kvn |
---|---|
date | Thu, 20 Mar 2014 17:49:27 -0700 |
parents | 085b304a1cc5 |
children | 62c54fcc0a35 |
comparison
equal
deleted
inserted
replaced
17778:a48e16541e6b | 17780:606acabe7b5c |
---|---|
615 case Op_StrIndexOf: | 615 case Op_StrIndexOf: |
616 case Op_EncodeISOArray: | 616 case Op_EncodeISOArray: |
617 case Op_AryEq: { | 617 case Op_AryEq: { |
618 return false; | 618 return false; |
619 } | 619 } |
620 #if INCLUDE_RTM_OPT | |
621 case Op_FastLock: | |
622 case Op_FastUnlock: { | |
623 // Don't unroll RTM locking code because it is large. | |
624 if (UseRTMLocking) { | |
625 return false; | |
626 } | |
627 } | |
628 #endif | |
620 } // switch | 629 } // switch |
621 } | 630 } |
622 | 631 |
623 return true; // Do maximally unroll | 632 return true; // Do maximally unroll |
624 } | 633 } |
720 case Op_AryEq: { | 729 case Op_AryEq: { |
721 // Do not unroll a loop with String intrinsics code. | 730 // Do not unroll a loop with String intrinsics code. |
722 // String intrinsics are large and have loops. | 731 // String intrinsics are large and have loops. |
723 return false; | 732 return false; |
724 } | 733 } |
734 #if INCLUDE_RTM_OPT | |
735 case Op_FastLock: | |
736 case Op_FastUnlock: { | |
737 // Don't unroll RTM locking code because it is large. | |
738 if (UseRTMLocking) { | |
739 return false; | |
740 } | |
741 } | |
742 #endif | |
725 } // switch | 743 } // switch |
726 } | 744 } |
727 | 745 |
728 // Check for being too big | 746 // Check for being too big |
729 if (body_size > (uint)LoopUnrollLimit) { | 747 if (body_size > (uint)LoopUnrollLimit) { |