src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp Thu Apr 28 11:48:50 2016
--- new/src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp Thu Apr 28 11:48:50 2016
*** 88,107 ****
--- 88,120 ----
return Flag::SUCCESS;
}
}
Flag::Error AllocatePrefetchDistanceConstraintFunc(intx value, bool verbose) {
! if (value < 0 || value > 512) {
CommandLineError::print(verbose,
! "Unable to determine system-specific value for AllocatePrefetchDistance. "
"Please provide appropriate value, if unsure, use 0 to disable prefetching\n");
! "AllocatePrefetchDistance (" INTX_FORMAT ") must be "
+ "between 0 and " INTX_FORMAT "\n",
+ AllocatePrefetchDistance, 512);
return Flag::VIOLATES_CONSTRAINT;
}
return Flag::SUCCESS;
}
+ Flag::Error AllocatePrefetchStepSizeConstraintFunc(intx value, bool verbose) {
+ if (AllocatePrefetchStyle == 3) {
+ if (value % wordSize != 0) {
+ CommandLineError::print(verbose,
+ "AllocatePrefetchStepSize (" INTX_FORMAT ") must be multiple of %d\n",
+ value, wordSize);
+ return Flag::VIOLATES_CONSTRAINT;
+ }
+ }
+ return Flag::SUCCESS;
+ }
+
Flag::Error AllocatePrefetchInstrConstraintFunc(intx value, bool verbose) {
intx max_value = max_intx;
#if defined(SPARC)
max_value = 1;
#elif defined(X86)
*** 114,166 ****
--- 127,136 ----
return Flag::VIOLATES_CONSTRAINT;
}
return Flag::SUCCESS;
}
Flag::Error AllocatePrefetchStepSizeConstraintFunc(intx value, bool verbose) {
intx max_value = 512;
if (value < 1 || value > max_value) {
CommandLineError::print(verbose,
"AllocatePrefetchStepSize (" INTX_FORMAT ") "
"must be between 1 and %d\n",
AllocatePrefetchStepSize,
max_value);
return Flag::VIOLATES_CONSTRAINT;
}
if (AllocatePrefetchDistance % AllocatePrefetchStepSize != 0) {
CommandLineError::print(verbose,
"AllocatePrefetchDistance (" INTX_FORMAT ") "
"%% AllocatePrefetchStepSize (" INTX_FORMAT ") "
"= " INTX_FORMAT " "
"must be 0\n",
AllocatePrefetchDistance, AllocatePrefetchStepSize,
AllocatePrefetchDistance % AllocatePrefetchStepSize);
return Flag::VIOLATES_CONSTRAINT;
}
/* The limit of 64 for the quotient of AllocatePrefetchDistance and AllocatePrefetchSize
* originates from the limit of 64 for AllocatePrefetchLines/AllocateInstancePrefetchLines.
* If AllocatePrefetchStyle == 2, the quotient from above is used in PhaseMacroExpand::prefetch_allocation()
* to determine the number of lines to prefetch. For other values of AllocatePrefetchStyle,
* AllocatePrefetchDistance and AllocatePrefetchSize is used. For consistency, all these
* quantities must have the same limit (64 in this case).
*/
if (AllocatePrefetchDistance / AllocatePrefetchStepSize > 64) {
CommandLineError::print(verbose,
"AllocatePrefetchDistance (" INTX_FORMAT ") too large or "
"AllocatePrefetchStepSize (" INTX_FORMAT ") too small; "
"try decreasing/increasing values so that "
"AllocatePrefetchDistance / AllocatePrefetchStepSize <= 64\n",
AllocatePrefetchDistance, AllocatePrefetchStepSize,
AllocatePrefetchDistance % AllocatePrefetchStepSize);
return Flag::VIOLATES_CONSTRAINT;
}
return Flag::SUCCESS;
}
Flag::Error CompileThresholdConstraintFunc(intx value, bool verbose) {
if (value < 0 || value > INT_MAX >> InvocationCounter::count_shift) {
CommandLineError::print(verbose,
"CompileThreshold (" INTX_FORMAT ") "
src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File