2514 2515 if (BackgroundCompilation && (CompileTheWorld || ReplayCompiles)) { 2516 if (!FLAG_IS_DEFAULT(BackgroundCompilation)) { 2517 warning("BackgroundCompilation disabled due to CompileTheWorld or ReplayCompiles options."); 2518 } 2519 FLAG_SET_CMDLINE(bool, BackgroundCompilation, false); 2520 } 2521 if (UseCompiler && is_interpreter_only()) { 2522 if (!FLAG_IS_DEFAULT(UseCompiler)) { 2523 warning("UseCompiler disabled due to -Xint."); 2524 } 2525 FLAG_SET_CMDLINE(bool, UseCompiler, false); 2526 } 2527 #ifdef COMPILER2 2528 if (PostLoopMultiversioning && !RangeCheckElimination) { 2529 if (!FLAG_IS_DEFAULT(PostLoopMultiversioning)) { 2530 warning("PostLoopMultiversioning disabled because RangeCheckElimination is disabled."); 2531 } 2532 FLAG_SET_CMDLINE(bool, PostLoopMultiversioning, false); 2533 } 2534 #endif 2535 return status; 2536 } 2537 2538 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore, 2539 const char* option_type) { 2540 if (ignore) return false; 2541 2542 const char* spacer = " "; 2543 if (option_type == NULL) { 2544 option_type = ++spacer; // Set both to the empty string. 2545 } 2546 2547 if (os::obsolete_option(option)) { 2548 jio_fprintf(defaultStream::error_stream(), 2549 "Obsolete %s%soption: %s\n", option_type, spacer, 2550 option->optionString); 2551 return false; 2552 } else { 2553 jio_fprintf(defaultStream::error_stream(), | 2514 2515 if (BackgroundCompilation && (CompileTheWorld || ReplayCompiles)) { 2516 if (!FLAG_IS_DEFAULT(BackgroundCompilation)) { 2517 warning("BackgroundCompilation disabled due to CompileTheWorld or ReplayCompiles options."); 2518 } 2519 FLAG_SET_CMDLINE(bool, BackgroundCompilation, false); 2520 } 2521 if (UseCompiler && is_interpreter_only()) { 2522 if (!FLAG_IS_DEFAULT(UseCompiler)) { 2523 warning("UseCompiler disabled due to -Xint."); 2524 } 2525 FLAG_SET_CMDLINE(bool, UseCompiler, false); 2526 } 2527 #ifdef COMPILER2 2528 if (PostLoopMultiversioning && !RangeCheckElimination) { 2529 if (!FLAG_IS_DEFAULT(PostLoopMultiversioning)) { 2530 warning("PostLoopMultiversioning disabled because RangeCheckElimination is disabled."); 2531 } 2532 FLAG_SET_CMDLINE(bool, PostLoopMultiversioning, false); 2533 } 2534 if (UseCountedLoopSafepoints && LoopStripMiningIter == 0) { 2535 if (!FLAG_IS_DEFAULT(UseCountedLoopSafepoints) || !FLAG_IS_DEFAULT(LoopStripMiningIter)) { 2536 warning("When counted loop safepoints are enabled, LoopStripMiningIter must be at least 1 (a safepoint every 1 iteration): setting it to 1"); 2537 } 2538 LoopStripMiningIter = 1; 2539 } else if (!UseCountedLoopSafepoints && LoopStripMiningIter > 0) { 2540 if (!FLAG_IS_DEFAULT(UseCountedLoopSafepoints) || !FLAG_IS_DEFAULT(LoopStripMiningIter)) { 2541 warning("Disabling counted safepoints implies no loop strip mining: setting LoopStripMiningIter to 0"); 2542 } 2543 LoopStripMiningIter = 0; 2544 } 2545 if (FLAG_IS_DEFAULT(LoopStripMiningIterShortLoop)) { 2546 // blind guess 2547 LoopStripMiningIterShortLoop = LoopStripMiningIter / 10; 2548 } 2549 #endif 2550 return status; 2551 } 2552 2553 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore, 2554 const char* option_type) { 2555 if (ignore) return false; 2556 2557 const char* spacer = " "; 2558 if (option_type == NULL) { 2559 option_type = ++spacer; // Set both to the empty string. 2560 } 2561 2562 if (os::obsolete_option(option)) { 2563 jio_fprintf(defaultStream::error_stream(), 2564 "Obsolete %s%soption: %s\n", option_type, spacer, 2565 option->optionString); 2566 return false; 2567 } else { 2568 jio_fprintf(defaultStream::error_stream(), |