| 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 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 DEFINE_implication(harmony_typed_arrays, harmony_array_buffer) | 171 DEFINE_implication(harmony_typed_arrays, harmony_array_buffer) |
| 172 DEFINE_bool(harmony_generators, false, "enable harmony generators") | 172 DEFINE_bool(harmony_generators, false, "enable harmony generators") |
| 173 DEFINE_bool(harmony_iteration, false, "enable harmony iteration (for-of)") | 173 DEFINE_bool(harmony_iteration, false, "enable harmony iteration (for-of)") |
| 174 DEFINE_bool(harmony, false, "enable all harmony features (except typeof)") | 174 DEFINE_bool(harmony, false, "enable all harmony features (except typeof)") |
| 175 DEFINE_implication(harmony, harmony_scoping) | 175 DEFINE_implication(harmony, harmony_scoping) |
| 176 DEFINE_implication(harmony, harmony_modules) | 176 DEFINE_implication(harmony, harmony_modules) |
| 177 DEFINE_implication(harmony, harmony_symbols) | 177 DEFINE_implication(harmony, harmony_symbols) |
| 178 DEFINE_implication(harmony, harmony_proxies) | 178 DEFINE_implication(harmony, harmony_proxies) |
| 179 DEFINE_implication(harmony, harmony_collections) | 179 DEFINE_implication(harmony, harmony_collections) |
| 180 DEFINE_implication(harmony, harmony_observation) | 180 DEFINE_implication(harmony, harmony_observation) |
| 181 // TODO(wingo): Re-enable when GC bug that appeared in r15060 is gone. | 181 DEFINE_implication(harmony, harmony_generators) |
| 182 // DEFINE_implication(harmony, harmony_generators) | |
| 183 DEFINE_implication(harmony, harmony_iteration) | 182 DEFINE_implication(harmony, harmony_iteration) |
| 184 DEFINE_implication(harmony_modules, harmony_scoping) | 183 DEFINE_implication(harmony_modules, harmony_scoping) |
| 185 DEFINE_implication(harmony_observation, harmony_collections) | 184 DEFINE_implication(harmony_observation, harmony_collections) |
| 186 // TODO[dslomov] add harmony => harmony_typed_arrays | 185 // TODO[dslomov] add harmony => harmony_typed_arrays |
| 187 | 186 |
| 188 // Flags for experimental implementation features. | 187 // Flags for experimental implementation features. |
| 189 DEFINE_bool(packed_arrays, true, "optimizes arrays that have no holes") | 188 DEFINE_bool(packed_arrays, true, "optimizes arrays that have no holes") |
| 190 DEFINE_bool(smi_only_arrays, true, "tracks arrays with only smi values") | 189 DEFINE_bool(smi_only_arrays, true, "tracks arrays with only smi values") |
| 191 DEFINE_bool(compiled_transitions, false, "use optimizing compiler to " | 190 DEFINE_bool(compiled_transitions, false, "use optimizing compiler to " |
| 192 "generate array elements transition stubs") | 191 "generate array elements transition stubs") |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 DEFINE_bool(inline_arguments, true, "inline functions with arguments object") | 283 DEFINE_bool(inline_arguments, true, "inline functions with arguments object") |
| 285 DEFINE_bool(inline_accessors, true, "inline JavaScript accessors") | 284 DEFINE_bool(inline_accessors, true, "inline JavaScript accessors") |
| 286 DEFINE_int(loop_weight, 1, "loop weight for representation inference") | 285 DEFINE_int(loop_weight, 1, "loop weight for representation inference") |
| 287 | 286 |
| 288 DEFINE_bool(optimize_for_in, true, | 287 DEFINE_bool(optimize_for_in, true, |
| 289 "optimize functions containing for-in loops") | 288 "optimize functions containing for-in loops") |
| 290 DEFINE_bool(opt_safe_uint32_operations, true, | 289 DEFINE_bool(opt_safe_uint32_operations, true, |
| 291 "allow uint32 values on optimize frames if they are used only in " | 290 "allow uint32 values on optimize frames if they are used only in " |
| 292 "safe operations") | 291 "safe operations") |
| 293 | 292 |
| 294 DEFINE_bool(parallel_recompilation, false, | 293 DEFINE_bool(parallel_recompilation, true, |
| 295 "optimizing hot functions asynchronously on a separate thread") | 294 "optimizing hot functions asynchronously on a separate thread") |
| 296 DEFINE_bool(trace_parallel_recompilation, false, "track parallel recompilation") | 295 DEFINE_bool(trace_parallel_recompilation, false, "track parallel recompilation") |
| 297 DEFINE_int(parallel_recompilation_queue_length, 3, | 296 DEFINE_int(parallel_recompilation_queue_length, 8, |
| 298 "the length of the parallel compilation queue") | 297 "the length of the parallel compilation queue") |
| 299 DEFINE_int(parallel_recompilation_delay, 0, | 298 DEFINE_int(parallel_recompilation_delay, 0, |
| 300 "artificial compilation delay in ms") | 299 "artificial compilation delay in ms") |
| 301 DEFINE_bool(omit_prototype_checks_for_leaf_maps, true, | 300 DEFINE_bool(omit_prototype_checks_for_leaf_maps, true, |
| 302 "do not emit prototype checks if all prototypes have leaf maps, " | 301 "do not emit prototype checks if all prototypes have leaf maps, " |
| 303 "deoptimize the optimized code if the layout of the maps changes.") | 302 "deoptimize the optimized code if the layout of the maps changes.") |
| 304 | 303 |
| 305 // Experimental profiler changes. | 304 // Experimental profiler changes. |
| 306 DEFINE_bool(experimental_profiler, true, "enable all profiler experiments") | 305 DEFINE_bool(experimental_profiler, true, "enable all profiler experiments") |
| 307 DEFINE_bool(watch_ic_patching, false, "profiler considers IC stability") | 306 DEFINE_bool(watch_ic_patching, false, "profiler considers IC stability") |
| 308 DEFINE_int(frame_count, 1, "number of stack frames inspected by the profiler") | 307 DEFINE_int(frame_count, 1, "number of stack frames inspected by the profiler") |
| 309 DEFINE_bool(self_optimization, false, | 308 DEFINE_bool(self_optimization, false, |
| 310 "primitive functions trigger their own optimization") | 309 "primitive functions trigger their own optimization") |
| 311 DEFINE_bool(direct_self_opt, false, | 310 DEFINE_bool(direct_self_opt, false, |
| 312 "call recompile stub directly when self-optimizing") | 311 "call recompile stub directly when self-optimizing") |
| 313 DEFINE_bool(retry_self_opt, false, "re-try self-optimization if it failed") | 312 DEFINE_bool(retry_self_opt, false, "re-try self-optimization if it failed") |
| 314 DEFINE_bool(interrupt_at_exit, false, | 313 DEFINE_bool(interrupt_at_exit, false, |
| 315 "insert an interrupt check at function exit") | 314 "insert an interrupt check at function exit") |
| 316 DEFINE_bool(weighted_back_edges, false, | 315 DEFINE_bool(weighted_back_edges, false, |
| 317 "weight back edges by jump distance for interrupt triggering") | 316 "weight back edges by jump distance for interrupt triggering") |
| 318 // 0x1700 fits in the immediate field of an ARM instruction. | 317 // 0x1700 fits in the immediate field of an ARM instruction. |
| 319 DEFINE_int(interrupt_budget, 0x1700, | 318 DEFINE_int(interrupt_budget, 0x1700, |
| 320 "execution budget before interrupt is triggered") | 319 "execution budget before interrupt is triggered") |
| 321 DEFINE_int(type_info_threshold, 15, | 320 DEFINE_int(type_info_threshold, 25, |
| 322 "percentage of ICs that must have type info to allow optimization") | 321 "percentage of ICs that must have type info to allow optimization") |
| 323 DEFINE_int(self_opt_count, 130, "call count before self-optimization") | 322 DEFINE_int(self_opt_count, 130, "call count before self-optimization") |
| 324 | 323 |
| 325 DEFINE_implication(experimental_profiler, watch_ic_patching) | 324 DEFINE_implication(experimental_profiler, watch_ic_patching) |
| 326 DEFINE_implication(experimental_profiler, self_optimization) | 325 DEFINE_implication(experimental_profiler, self_optimization) |
| 327 // Not implying direct_self_opt here because it seems to be a bad idea. | 326 // Not implying direct_self_opt here because it seems to be a bad idea. |
| 328 DEFINE_implication(experimental_profiler, retry_self_opt) | 327 DEFINE_implication(experimental_profiler, retry_self_opt) |
| 329 DEFINE_implication(experimental_profiler, interrupt_at_exit) | 328 DEFINE_implication(experimental_profiler, interrupt_at_exit) |
| 330 DEFINE_implication(experimental_profiler, weighted_back_edges) | 329 DEFINE_implication(experimental_profiler, weighted_back_edges) |
| 331 | 330 |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 #undef DEFINE_bool | 817 #undef DEFINE_bool |
| 819 #undef DEFINE_int | 818 #undef DEFINE_int |
| 820 #undef DEFINE_string | 819 #undef DEFINE_string |
| 821 #undef DEFINE_implication | 820 #undef DEFINE_implication |
| 822 | 821 |
| 823 #undef FLAG_MODE_DECLARE | 822 #undef FLAG_MODE_DECLARE |
| 824 #undef FLAG_MODE_DEFINE | 823 #undef FLAG_MODE_DEFINE |
| 825 #undef FLAG_MODE_DEFINE_DEFAULTS | 824 #undef FLAG_MODE_DEFINE_DEFAULTS |
| 826 #undef FLAG_MODE_META | 825 #undef FLAG_MODE_META |
| 827 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 826 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
| OLD | NEW |