src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8031320_8u Sdiff src/share/vm/runtime

src/share/vm/runtime/arguments.cpp

Print this page
rev 5968 : 8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed


3731 #endif // COMPILER1
3732     ) {
3733     if (!FLAG_IS_DEFAULT(UseBiasedLocking) && UseBiasedLocking) {
3734       // flag set to true on command line; warn the user that they
3735       // can't enable biased locking here
3736       warning("Biased Locking is not supported with locking debug flags"
3737               "; ignoring UseBiasedLocking flag." );
3738     }
3739     UseBiasedLocking = false;
3740   }
3741 
3742 #ifdef CC_INTERP
3743   // Clear flags not supported by the C++ interpreter
3744   FLAG_SET_DEFAULT(ProfileInterpreter, false);
3745   FLAG_SET_DEFAULT(UseBiasedLocking, false);
3746   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedOops, false));
3747   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedClassPointers, false));
3748 #endif // CC_INTERP
3749 
3750 #ifdef COMPILER2
3751   if (!UseBiasedLocking || EmitSync != 0) {
3752     UseOptoBiasInlining = false;
3753   }
3754   if (!EliminateLocks) {
3755     EliminateNestedLocks = false;
3756   }
3757   if (!Inline) {
3758     IncrementalInline = false;
3759   }
3760 #ifndef PRODUCT
3761   if (!IncrementalInline) {
3762     AlwaysIncrementalInline = false;
3763   }
3764 #endif
3765   if (IncrementalInline && FLAG_IS_DEFAULT(MaxNodeLimit)) {
3766     // incremental inlining: bump MaxNodeLimit
3767     FLAG_SET_DEFAULT(MaxNodeLimit, (intx)75000);
3768   }
3769   if (!UseTypeSpeculation && FLAG_IS_DEFAULT(TypeProfileLevel)) {
3770     // nothing to use the profiling, turn if off
3771     FLAG_SET_DEFAULT(TypeProfileLevel, 0);
3772   }
3773   if (UseTypeSpeculation && FLAG_IS_DEFAULT(ReplaceInParentMaps)) {


3804     CommandLineFlags::printSetFlags(tty);
3805   }
3806 
3807   // Apply CPU specific policy for the BiasedLocking
3808   if (UseBiasedLocking) {
3809     if (!VM_Version::use_biased_locking() &&
3810         !(FLAG_IS_CMDLINE(UseBiasedLocking))) {
3811       UseBiasedLocking = false;
3812     }
3813   }
3814 
3815   // set PauseAtExit if the gamma launcher was used and a debugger is attached
3816   // but only if not already set on the commandline
3817   if (Arguments::created_by_gamma_launcher() && os::is_debugger_attached()) {
3818     bool set = false;
3819     CommandLineFlags::wasSetOnCmdline("PauseAtExit", &set);
3820     if (!set) {
3821       FLAG_SET_DEFAULT(PauseAtExit, true);
3822     }
3823   }





3824 
3825   return JNI_OK;
3826 }
3827 
3828 jint Arguments::adjust_after_os() {
3829 #if INCLUDE_ALL_GCS
3830   if (UseParallelGC || UseParallelOldGC) {
3831     if (UseNUMA) {
3832       if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
3833         FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M);
3834       }
3835       // For those collectors or operating systems (eg, Windows) that do
3836       // not support full UseNUMA, we will map to UseNUMAInterleaving for now
3837       UseNUMAInterleaving = true;
3838     }
3839   }
3840 #endif // INCLUDE_ALL_GCS
3841   return JNI_OK;
3842 }
3843 




3731 #endif // COMPILER1
3732     ) {
3733     if (!FLAG_IS_DEFAULT(UseBiasedLocking) && UseBiasedLocking) {
3734       // flag set to true on command line; warn the user that they
3735       // can't enable biased locking here
3736       warning("Biased Locking is not supported with locking debug flags"
3737               "; ignoring UseBiasedLocking flag." );
3738     }
3739     UseBiasedLocking = false;
3740   }
3741 
3742 #ifdef CC_INTERP
3743   // Clear flags not supported by the C++ interpreter
3744   FLAG_SET_DEFAULT(ProfileInterpreter, false);
3745   FLAG_SET_DEFAULT(UseBiasedLocking, false);
3746   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedOops, false));
3747   LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedClassPointers, false));
3748 #endif // CC_INTERP
3749 
3750 #ifdef COMPILER2



3751   if (!EliminateLocks) {
3752     EliminateNestedLocks = false;
3753   }
3754   if (!Inline) {
3755     IncrementalInline = false;
3756   }
3757 #ifndef PRODUCT
3758   if (!IncrementalInline) {
3759     AlwaysIncrementalInline = false;
3760   }
3761 #endif
3762   if (IncrementalInline && FLAG_IS_DEFAULT(MaxNodeLimit)) {
3763     // incremental inlining: bump MaxNodeLimit
3764     FLAG_SET_DEFAULT(MaxNodeLimit, (intx)75000);
3765   }
3766   if (!UseTypeSpeculation && FLAG_IS_DEFAULT(TypeProfileLevel)) {
3767     // nothing to use the profiling, turn if off
3768     FLAG_SET_DEFAULT(TypeProfileLevel, 0);
3769   }
3770   if (UseTypeSpeculation && FLAG_IS_DEFAULT(ReplaceInParentMaps)) {


3801     CommandLineFlags::printSetFlags(tty);
3802   }
3803 
3804   // Apply CPU specific policy for the BiasedLocking
3805   if (UseBiasedLocking) {
3806     if (!VM_Version::use_biased_locking() &&
3807         !(FLAG_IS_CMDLINE(UseBiasedLocking))) {
3808       UseBiasedLocking = false;
3809     }
3810   }
3811 
3812   // set PauseAtExit if the gamma launcher was used and a debugger is attached
3813   // but only if not already set on the commandline
3814   if (Arguments::created_by_gamma_launcher() && os::is_debugger_attached()) {
3815     bool set = false;
3816     CommandLineFlags::wasSetOnCmdline("PauseAtExit", &set);
3817     if (!set) {
3818       FLAG_SET_DEFAULT(PauseAtExit, true);
3819     }
3820   }
3821 #ifdef COMPILER2
3822   if (!UseBiasedLocking || EmitSync != 0) {
3823     UseOptoBiasInlining = false;
3824   }
3825 #endif
3826 
3827   return JNI_OK;
3828 }
3829 
3830 jint Arguments::adjust_after_os() {
3831 #if INCLUDE_ALL_GCS
3832   if (UseParallelGC || UseParallelOldGC) {
3833     if (UseNUMA) {
3834       if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
3835         FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M);
3836       }
3837       // For those collectors or operating systems (eg, Windows) that do
3838       // not support full UseNUMA, we will map to UseNUMAInterleaving for now
3839       UseNUMAInterleaving = true;
3840     }
3841   }
3842 #endif // INCLUDE_ALL_GCS
3843   return JNI_OK;
3844 }
3845 


src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File