| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 { Flag::TYPE_##ftype, #nam, &FLAG_##nam, &FLAGDEFAULT_##nam, cmt, false }, | 62 { Flag::TYPE_##ftype, #nam, &FLAG_##nam, &FLAGDEFAULT_##nam, cmt, false }, |
| 63 #define FLAG_ALIAS(ftype, ctype, alias, nam) \ | 63 #define FLAG_ALIAS(ftype, ctype, alias, nam) \ |
| 64 { Flag::TYPE_##ftype, #alias, &FLAG_##nam, &FLAGDEFAULT_##nam, \ | 64 { Flag::TYPE_##ftype, #alias, &FLAG_##nam, &FLAGDEFAULT_##nam, \ |
| 65 "alias for --"#nam, false }, | 65 "alias for --"#nam, false }, |
| 66 | 66 |
| 67 // We produce the code to set flags when it is implied by another flag. | 67 // We produce the code to set flags when it is implied by another flag. |
| 68 #elif defined(FLAG_MODE_DEFINE_IMPLICATIONS) | 68 #elif defined(FLAG_MODE_DEFINE_IMPLICATIONS) |
| 69 #define DEFINE_implication(whenflag, thenflag) \ | 69 #define DEFINE_implication(whenflag, thenflag) \ |
| 70 if (FLAG_##whenflag) FLAG_##thenflag = true; | 70 if (FLAG_##whenflag) FLAG_##thenflag = true; |
| 71 | 71 |
| 72 #define DEFINE_neg_implication(whenflag, thenflag) \ |
| 73 if (FLAG_##whenflag) FLAG_##thenflag = false; |
| 74 |
| 72 #else | 75 #else |
| 73 #error No mode supplied when including flags.defs | 76 #error No mode supplied when including flags.defs |
| 74 #endif | 77 #endif |
| 75 | 78 |
| 76 // Dummy defines for modes where it is not relevant. | 79 // Dummy defines for modes where it is not relevant. |
| 77 #ifndef FLAG_FULL | 80 #ifndef FLAG_FULL |
| 78 #define FLAG_FULL(ftype, ctype, nam, def, cmt) | 81 #define FLAG_FULL(ftype, ctype, nam, def, cmt) |
| 79 #endif | 82 #endif |
| 80 | 83 |
| 81 #ifndef FLAG_READONLY | 84 #ifndef FLAG_READONLY |
| 82 #define FLAG_READONLY(ftype, ctype, nam, def, cmt) | 85 #define FLAG_READONLY(ftype, ctype, nam, def, cmt) |
| 83 #endif | 86 #endif |
| 84 | 87 |
| 85 #ifndef FLAG_ALIAS | 88 #ifndef FLAG_ALIAS |
| 86 #define FLAG_ALIAS(ftype, ctype, alias, nam) | 89 #define FLAG_ALIAS(ftype, ctype, alias, nam) |
| 87 #endif | 90 #endif |
| 88 | 91 |
| 89 #ifndef DEFINE_implication | 92 #ifndef DEFINE_implication |
| 90 #define DEFINE_implication(whenflag, thenflag) | 93 #define DEFINE_implication(whenflag, thenflag) |
| 91 #endif | 94 #endif |
| 92 | 95 |
| 96 #ifndef DEFINE_neg_implication |
| 97 #define DEFINE_neg_implication(whenflag, thenflag) |
| 98 #endif |
| 99 |
| 93 #define COMMA , | 100 #define COMMA , |
| 94 | 101 |
| 95 #ifdef FLAG_MODE_DECLARE | 102 #ifdef FLAG_MODE_DECLARE |
| 96 // Structure used to hold a collection of arguments to the JavaScript code. | 103 // Structure used to hold a collection of arguments to the JavaScript code. |
| 97 struct JSArguments { | 104 struct JSArguments { |
| 98 public: | 105 public: |
| 99 inline const char*& operator[] (int idx) const { | 106 inline const char*& operator[] (int idx) const { |
| 100 return argv[idx]; | 107 return argv[idx]; |
| 101 } | 108 } |
| 102 static JSArguments Create(int argc, const char** argv) { | 109 static JSArguments Create(int argc, const char** argv) { |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 DEFINE_bool(concurrent_osr, false, | 347 DEFINE_bool(concurrent_osr, false, |
| 341 "concurrent on-stack replacement") | 348 "concurrent on-stack replacement") |
| 342 DEFINE_implication(concurrent_osr, concurrent_recompilation) | 349 DEFINE_implication(concurrent_osr, concurrent_recompilation) |
| 343 | 350 |
| 344 DEFINE_bool(omit_map_checks_for_leaf_maps, true, | 351 DEFINE_bool(omit_map_checks_for_leaf_maps, true, |
| 345 "do not emit check maps for constant values that have a leaf map, " | 352 "do not emit check maps for constant values that have a leaf map, " |
| 346 "deoptimize the optimized code if the layout of the maps changes.") | 353 "deoptimize the optimized code if the layout of the maps changes.") |
| 347 | 354 |
| 348 DEFINE_bool(new_string_add, true, "enable new string addition") | 355 DEFINE_bool(new_string_add, true, "enable new string addition") |
| 349 | 356 |
| 350 // Experimental profiler changes. | 357 // Profiler flags. |
| 351 DEFINE_bool(experimental_profiler, true, "enable all profiler experiments") | |
| 352 DEFINE_bool(watch_ic_patching, false, "profiler considers IC stability") | |
| 353 DEFINE_int(frame_count, 1, "number of stack frames inspected by the profiler") | 358 DEFINE_int(frame_count, 1, "number of stack frames inspected by the profiler") |
| 354 DEFINE_bool(self_optimization, false, | |
| 355 "primitive functions trigger their own optimization") | |
| 356 DEFINE_bool(direct_self_opt, false, | |
| 357 "call recompile stub directly when self-optimizing") | |
| 358 DEFINE_bool(retry_self_opt, false, "re-try self-optimization if it failed") | |
| 359 DEFINE_bool(interrupt_at_exit, false, | |
| 360 "insert an interrupt check at function exit") | |
| 361 DEFINE_bool(weighted_back_edges, false, | |
| 362 "weight back edges by jump distance for interrupt triggering") | |
| 363 // 0x1700 fits in the immediate field of an ARM instruction. | 359 // 0x1700 fits in the immediate field of an ARM instruction. |
| 364 DEFINE_int(interrupt_budget, 0x1700, | 360 DEFINE_int(interrupt_budget, 0x1700, |
| 365 "execution budget before interrupt is triggered") | 361 "execution budget before interrupt is triggered") |
| 366 DEFINE_int(type_info_threshold, 25, | 362 DEFINE_int(type_info_threshold, 25, |
| 367 "percentage of ICs that must have type info to allow optimization") | 363 "percentage of ICs that must have type info to allow optimization") |
| 368 DEFINE_int(self_opt_count, 130, "call count before self-optimization") | 364 DEFINE_int(self_opt_count, 130, "call count before self-optimization") |
| 369 | 365 |
| 370 DEFINE_implication(experimental_profiler, watch_ic_patching) | |
| 371 DEFINE_implication(experimental_profiler, self_optimization) | |
| 372 // Not implying direct_self_opt here because it seems to be a bad idea. | |
| 373 DEFINE_implication(experimental_profiler, retry_self_opt) | |
| 374 DEFINE_implication(experimental_profiler, interrupt_at_exit) | |
| 375 DEFINE_implication(experimental_profiler, weighted_back_edges) | |
| 376 | |
| 377 DEFINE_bool(trace_opt_verbose, false, "extra verbose compilation tracing") | 366 DEFINE_bool(trace_opt_verbose, false, "extra verbose compilation tracing") |
| 378 DEFINE_implication(trace_opt_verbose, trace_opt) | 367 DEFINE_implication(trace_opt_verbose, trace_opt) |
| 379 | 368 |
| 380 // assembler-ia32.cc / assembler-arm.cc / assembler-x64.cc | 369 // assembler-ia32.cc / assembler-arm.cc / assembler-x64.cc |
| 381 DEFINE_bool(debug_code, false, | 370 DEFINE_bool(debug_code, false, |
| 382 "generate extra code (assertions) for debugging") | 371 "generate extra code (assertions) for debugging") |
| 383 DEFINE_bool(code_comments, false, "emit comments in code disassembly") | 372 DEFINE_bool(code_comments, false, "emit comments in code disassembly") |
| 384 DEFINE_bool(enable_sse2, true, | 373 DEFINE_bool(enable_sse2, true, |
| 385 "enable use of SSE2 instructions if available") | 374 "enable use of SSE2 instructions if available") |
| 386 DEFINE_bool(enable_sse3, true, | 375 DEFINE_bool(enable_sse3, true, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 414 DEFINE_string(expose_debug_as, NULL, "expose debug in global object") | 403 DEFINE_string(expose_debug_as, NULL, "expose debug in global object") |
| 415 #ifdef ADDRESS_SANITIZER | 404 #ifdef ADDRESS_SANITIZER |
| 416 DEFINE_bool(expose_free_buffer, false, "expose freeBuffer extension") | 405 DEFINE_bool(expose_free_buffer, false, "expose freeBuffer extension") |
| 417 #endif | 406 #endif |
| 418 DEFINE_bool(expose_gc, false, "expose gc extension") | 407 DEFINE_bool(expose_gc, false, "expose gc extension") |
| 419 DEFINE_string(expose_gc_as, NULL, | 408 DEFINE_string(expose_gc_as, NULL, |
| 420 "expose gc extension under the specified name") | 409 "expose gc extension under the specified name") |
| 421 DEFINE_implication(expose_gc_as, expose_gc) | 410 DEFINE_implication(expose_gc_as, expose_gc) |
| 422 DEFINE_bool(expose_externalize_string, false, | 411 DEFINE_bool(expose_externalize_string, false, |
| 423 "expose externalize string extension") | 412 "expose externalize string extension") |
| 413 DEFINE_bool(expose_trigger_failure, false, "expose trigger-failure extension") |
| 424 DEFINE_int(stack_trace_limit, 10, "number of stack frames to capture") | 414 DEFINE_int(stack_trace_limit, 10, "number of stack frames to capture") |
| 425 DEFINE_bool(builtins_in_stack_traces, false, | 415 DEFINE_bool(builtins_in_stack_traces, false, |
| 426 "show built-in functions in stack traces") | 416 "show built-in functions in stack traces") |
| 427 DEFINE_bool(disable_native_files, false, "disable builtin natives files") | 417 DEFINE_bool(disable_native_files, false, "disable builtin natives files") |
| 428 | 418 |
| 429 // builtins-ia32.cc | 419 // builtins-ia32.cc |
| 430 DEFINE_bool(inline_new, true, "use fast inline allocation") | 420 DEFINE_bool(inline_new, true, "use fast inline allocation") |
| 431 | 421 |
| 432 // checks.cc | 422 // checks.cc |
| 433 DEFINE_bool(stack_trace_on_abort, true, | 423 DEFINE_bool(stack_trace_on_abort, true, |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 654 #endif | 644 #endif |
| 655 | 645 |
| 656 // mksnapshot.cc | 646 // mksnapshot.cc |
| 657 DEFINE_string(extra_code, NULL, "A filename with extra code to be included in" | 647 DEFINE_string(extra_code, NULL, "A filename with extra code to be included in" |
| 658 " the snapshot (mksnapshot only)") | 648 " the snapshot (mksnapshot only)") |
| 659 | 649 |
| 660 // code-stubs-hydrogen.cc | 650 // code-stubs-hydrogen.cc |
| 661 DEFINE_bool(profile_hydrogen_code_stub_compilation, false, | 651 DEFINE_bool(profile_hydrogen_code_stub_compilation, false, |
| 662 "Print the time it takes to lazily compile hydrogen code stubs.") | 652 "Print the time it takes to lazily compile hydrogen code stubs.") |
| 663 | 653 |
| 654 DEFINE_bool(predictable, false, "enable predictable mode") |
| 655 DEFINE_neg_implication(predictable, randomize_hashes) |
| 656 DEFINE_neg_implication(predictable, concurrent_recompilation) |
| 657 DEFINE_neg_implication(predictable, concurrent_osr) |
| 658 DEFINE_neg_implication(predictable, concurrent_sweeping) |
| 659 DEFINE_neg_implication(predictable, parallel_sweeping) |
| 660 |
| 661 |
| 664 // | 662 // |
| 665 // Dev shell flags | 663 // Dev shell flags |
| 666 // | 664 // |
| 667 | 665 |
| 668 DEFINE_bool(help, false, "Print usage message, including flags, on console") | 666 DEFINE_bool(help, false, "Print usage message, including flags, on console") |
| 669 DEFINE_bool(dump_counters, false, "Dump counters on exit") | 667 DEFINE_bool(dump_counters, false, "Dump counters on exit") |
| 670 | 668 |
| 671 #ifdef ENABLE_DEBUGGER_SUPPORT | 669 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 672 DEFINE_bool(debugger, false, "Enable JavaScript debugger") | 670 DEFINE_bool(debugger, false, "Enable JavaScript debugger") |
| 673 DEFINE_bool(remote_debugger, false, "Connect JavaScript debugger to the " | 671 DEFINE_bool(remote_debugger, false, "Connect JavaScript debugger to the " |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 #undef FLAG | 904 #undef FLAG |
| 907 #undef FLAG_ALIAS | 905 #undef FLAG_ALIAS |
| 908 | 906 |
| 909 #undef DEFINE_bool | 907 #undef DEFINE_bool |
| 910 #undef DEFINE_maybe_bool | 908 #undef DEFINE_maybe_bool |
| 911 #undef DEFINE_int | 909 #undef DEFINE_int |
| 912 #undef DEFINE_string | 910 #undef DEFINE_string |
| 913 #undef DEFINE_float | 911 #undef DEFINE_float |
| 914 #undef DEFINE_args | 912 #undef DEFINE_args |
| 915 #undef DEFINE_implication | 913 #undef DEFINE_implication |
| 914 #undef DEFINE_neg_implication |
| 916 #undef DEFINE_ALIAS_bool | 915 #undef DEFINE_ALIAS_bool |
| 917 #undef DEFINE_ALIAS_int | 916 #undef DEFINE_ALIAS_int |
| 918 #undef DEFINE_ALIAS_string | 917 #undef DEFINE_ALIAS_string |
| 919 #undef DEFINE_ALIAS_float | 918 #undef DEFINE_ALIAS_float |
| 920 #undef DEFINE_ALIAS_args | 919 #undef DEFINE_ALIAS_args |
| 921 | 920 |
| 922 #undef FLAG_MODE_DECLARE | 921 #undef FLAG_MODE_DECLARE |
| 923 #undef FLAG_MODE_DEFINE | 922 #undef FLAG_MODE_DEFINE |
| 924 #undef FLAG_MODE_DEFINE_DEFAULTS | 923 #undef FLAG_MODE_DEFINE_DEFAULTS |
| 925 #undef FLAG_MODE_META | 924 #undef FLAG_MODE_META |
| 926 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 925 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
| 927 | 926 |
| 928 #undef COMMA | 927 #undef COMMA |
| OLD | NEW |