src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8153340 Cdiff src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp

src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp

Print this page

        

*** 87,161 **** } else { return Flag::SUCCESS; } } ! Flag::Error AllocatePrefetchDistanceConstraintFunc(intx value, bool verbose) { ! if (value < 0) { ! CommandLineError::print(verbose, ! "Unable to determine system-specific value for AllocatePrefetchDistance. " ! "Please provide appropriate value, if unsure, use 0 to disable prefetching\n"); ! 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) max_value = 3; #endif if (value < 0 || value > max_value) { CommandLineError::print(verbose, ! "AllocatePrefetchInstr (" INTX_FORMAT ") must be " "between 0 and " INTX_FORMAT "\n", value, max_value); 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; } --- 87,155 ---- } else { return Flag::SUCCESS; } } ! Flag::Error AllocatePrefetchStyleConstraintFunc(intx value, bool verbose) { ! intx max_value; #if defined(SPARC) max_value = 3; + #else + max_value = 2; #endif if (value < 0 || value > max_value) { CommandLineError::print(verbose, ! "AllocatePrefetchStyle (" INTX_FORMAT ") must be " "between 0 and " INTX_FORMAT "\n", value, max_value); return Flag::VIOLATES_CONSTRAINT; } return Flag::SUCCESS; } ! Flag::Error AllocatePrefetchDistanceConstraintFunc(intx value, bool verbose) { ! intx min_value; ! if (AllocatePrefetchStyle == 3) { ! min_value = wordSize; ! } else { ! min_value = 0; ! } ! ! if (value < min_value || value > 512) { CommandLineError::print(verbose, ! "AllocatePrefetchDistance (" INTX_FORMAT ") must be " ! "between " INTX_FORMAT " and " INTX_FORMAT "\n", ! AllocatePrefetchDistance, min_value, 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) ! max_value = 3; ! #endif ! if (value < 0 || value > max_value) { CommandLineError::print(verbose, ! "AllocatePrefetchInstr (" INTX_FORMAT ") must be " ! "between 0 and " INTX_FORMAT "\n", value, max_value); return Flag::VIOLATES_CONSTRAINT; } return Flag::SUCCESS; }
src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File