src/share/vm/runtime/arguments.cpp

Print this page
rev 4810 : 8017317: PPC64 (part 7): cppInterpreter: implement support for biased locking
Summary: Also add a memory ordering operation in revoke_bias() needed without TSO.


3560 
3561   // Turn off biased locking for locking debug mode flags,
3562   // which are subtlely different from each other but neither works with
3563   // biased locking.
3564   if (UseHeavyMonitors
3565 #ifdef COMPILER1
3566       || !UseFastLocking
3567 #endif // COMPILER1
3568     ) {
3569     if (!FLAG_IS_DEFAULT(UseBiasedLocking) && UseBiasedLocking) {
3570       // flag set to true on command line; warn the user that they
3571       // can't enable biased locking here
3572       warning("Biased Locking is not supported with locking debug flags"
3573               "; ignoring UseBiasedLocking flag." );
3574     }
3575     UseBiasedLocking = false;
3576   }
3577 
3578 #ifdef CC_INTERP
3579   // Clear flags not supported by the C++ interpreter
3580   FLAG_SET_DEFAULT(ProfileInterpreter, false);
3581   FLAG_SET_DEFAULT(UseBiasedLocking, false);


3582   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedOops, false));
3583   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedKlassPointers, false));
3584 #endif // CC_INTERP
3585 
3586 #ifdef COMPILER2
3587   if (!UseBiasedLocking || EmitSync != 0) {
3588     UseOptoBiasInlining = false;
3589   }
3590   if (!EliminateLocks) {
3591     EliminateNestedLocks = false;
3592   }
3593   if (!Inline) {
3594     IncrementalInline = false;
3595   }
3596 #ifndef PRODUCT
3597   if (!IncrementalInline) {
3598     AlwaysIncrementalInline = false;
3599   }
3600 #endif
3601   if (IncrementalInline && FLAG_IS_DEFAULT(MaxNodeLimit)) {




3560 
3561   // Turn off biased locking for locking debug mode flags,
3562   // which are subtlely different from each other but neither works with
3563   // biased locking.
3564   if (UseHeavyMonitors
3565 #ifdef COMPILER1
3566       || !UseFastLocking
3567 #endif // COMPILER1
3568     ) {
3569     if (!FLAG_IS_DEFAULT(UseBiasedLocking) && UseBiasedLocking) {
3570       // flag set to true on command line; warn the user that they
3571       // can't enable biased locking here
3572       warning("Biased Locking is not supported with locking debug flags"
3573               "; ignoring UseBiasedLocking flag." );
3574     }
3575     UseBiasedLocking = false;
3576   }
3577 
3578 #ifdef CC_INTERP
3579   // Clear flags not supported by the C++ interpreter
3580 #if !defined(PPC64)
3581   FLAG_SET_DEFAULT(UseBiasedLocking, false);
3582 #endif // !PPC64
3583   FLAG_SET_DEFAULT(ProfileInterpreter, false);
3584   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedOops, false));
3585   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedKlassPointers, false));
3586 #endif // CC_INTERP
3587 
3588 #ifdef COMPILER2
3589   if (!UseBiasedLocking || EmitSync != 0) {
3590     UseOptoBiasInlining = false;
3591   }
3592   if (!EliminateLocks) {
3593     EliminateNestedLocks = false;
3594   }
3595   if (!Inline) {
3596     IncrementalInline = false;
3597   }
3598 #ifndef PRODUCT
3599   if (!IncrementalInline) {
3600     AlwaysIncrementalInline = false;
3601   }
3602 #endif
3603   if (IncrementalInline && FLAG_IS_DEFAULT(MaxNodeLimit)) {