| 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 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 "enable harmony collections (sets, maps, and weak maps)") | 164 "enable harmony collections (sets, maps, and weak maps)") |
| 165 DEFINE_bool(harmony_observation, false, | 165 DEFINE_bool(harmony_observation, false, |
| 166 "enable harmony object observation (implies harmony collections") | 166 "enable harmony object observation (implies harmony collections") |
| 167 DEFINE_bool(harmony_typed_arrays, false, | 167 DEFINE_bool(harmony_typed_arrays, false, |
| 168 "enable harmony typed arrays") | 168 "enable harmony typed arrays") |
| 169 DEFINE_bool(harmony_array_buffer, false, | 169 DEFINE_bool(harmony_array_buffer, false, |
| 170 "enable harmony array buffer") | 170 "enable harmony array buffer") |
| 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_numeric_literals, false, |
| 175 "enable harmony numeric literals (0o77, 0b11)") |
| 174 DEFINE_bool(harmony, false, "enable all harmony features (except typeof)") | 176 DEFINE_bool(harmony, false, "enable all harmony features (except typeof)") |
| 175 DEFINE_implication(harmony, harmony_scoping) | 177 DEFINE_implication(harmony, harmony_scoping) |
| 176 DEFINE_implication(harmony, harmony_modules) | 178 DEFINE_implication(harmony, harmony_modules) |
| 177 DEFINE_implication(harmony, harmony_symbols) | 179 DEFINE_implication(harmony, harmony_symbols) |
| 178 DEFINE_implication(harmony, harmony_proxies) | 180 DEFINE_implication(harmony, harmony_proxies) |
| 179 DEFINE_implication(harmony, harmony_collections) | 181 DEFINE_implication(harmony, harmony_collections) |
| 180 DEFINE_implication(harmony, harmony_observation) | 182 DEFINE_implication(harmony, harmony_observation) |
| 181 DEFINE_implication(harmony, harmony_generators) | 183 DEFINE_implication(harmony, harmony_generators) |
| 182 DEFINE_implication(harmony, harmony_iteration) | 184 DEFINE_implication(harmony, harmony_iteration) |
| 185 DEFINE_implication(harmony, harmony_numeric_literals) |
| 183 DEFINE_implication(harmony_modules, harmony_scoping) | 186 DEFINE_implication(harmony_modules, harmony_scoping) |
| 184 DEFINE_implication(harmony_observation, harmony_collections) | 187 DEFINE_implication(harmony_observation, harmony_collections) |
| 185 // TODO[dslomov] add harmony => harmony_typed_arrays | 188 // TODO[dslomov] add harmony => harmony_typed_arrays |
| 186 | 189 |
| 187 // Flags for experimental implementation features. | 190 // Flags for experimental implementation features. |
| 188 DEFINE_bool(packed_arrays, true, "optimizes arrays that have no holes") | 191 DEFINE_bool(packed_arrays, true, "optimizes arrays that have no holes") |
| 189 DEFINE_bool(smi_only_arrays, true, "tracks arrays with only smi values") | 192 DEFINE_bool(smi_only_arrays, true, "tracks arrays with only smi values") |
| 190 DEFINE_bool(compiled_transitions, false, "use optimizing compiler to " | 193 DEFINE_bool(compiled_transitions, true, "use optimizing compiler to " |
| 191 "generate array elements transition stubs") | 194 "generate array elements transition stubs") |
| 192 DEFINE_bool(compiled_keyed_stores, true, "use optimizing compiler to " | 195 DEFINE_bool(compiled_keyed_stores, true, "use optimizing compiler to " |
| 193 "generate keyed store stubs") | 196 "generate keyed store stubs") |
| 194 DEFINE_bool(clever_optimizations, | 197 DEFINE_bool(clever_optimizations, |
| 195 true, | 198 true, |
| 196 "Optimize object size, Array shift, DOM strings and string +") | 199 "Optimize object size, Array shift, DOM strings and string +") |
| 197 DEFINE_bool(pretenuring, true, "allocate objects in old space") | 200 DEFINE_bool(pretenuring, true, "allocate objects in old space") |
| 198 // TODO(hpayer): We will remove this flag as soon as we have pretenuring | 201 // TODO(hpayer): We will remove this flag as soon as we have pretenuring |
| 199 // support for specific allocation sites. | 202 // support for specific allocation sites. |
| 200 DEFINE_bool(pretenuring_call_new, false, "pretenure call new") | 203 DEFINE_bool(pretenuring_call_new, false, "pretenure call new") |
| 201 DEFINE_bool(track_fields, true, "track fields with only smi values") | 204 DEFINE_bool(track_fields, true, "track fields with only smi values") |
| 202 DEFINE_bool(track_double_fields, true, "track fields with double values") | 205 DEFINE_bool(track_double_fields, true, "track fields with double values") |
| 203 DEFINE_bool(track_heap_object_fields, true, "track fields with heap values") | 206 DEFINE_bool(track_heap_object_fields, true, "track fields with heap values") |
| 204 DEFINE_bool(track_computed_fields, true, "track computed boilerplate fields") | 207 DEFINE_bool(track_computed_fields, true, "track computed boilerplate fields") |
| 205 DEFINE_implication(track_double_fields, track_fields) | 208 DEFINE_implication(track_double_fields, track_fields) |
| 206 DEFINE_implication(track_heap_object_fields, track_fields) | 209 DEFINE_implication(track_heap_object_fields, track_fields) |
| 207 DEFINE_implication(track_computed_fields, track_fields) | 210 DEFINE_implication(track_computed_fields, track_fields) |
| 208 | 211 |
| 209 // Flags for data representation optimizations | 212 // Flags for data representation optimizations |
| 210 DEFINE_bool(unbox_double_arrays, true, "automatically unbox arrays of doubles") | 213 DEFINE_bool(unbox_double_arrays, true, "automatically unbox arrays of doubles") |
| 211 DEFINE_bool(string_slices, true, "use string slices") | 214 DEFINE_bool(string_slices, true, "use string slices") |
| 212 | 215 |
| 213 // Flags for Crankshaft. | 216 // Flags for Crankshaft. |
| 214 DEFINE_bool(crankshaft, true, "use crankshaft") | 217 DEFINE_bool(crankshaft, true, "use crankshaft") |
| 215 DEFINE_string(hydrogen_filter, "", "optimization filter") | 218 DEFINE_string(hydrogen_filter, "*", "optimization filter") |
| 216 DEFINE_bool(use_range, true, "use hydrogen range analysis") | 219 DEFINE_bool(use_range, true, "use hydrogen range analysis") |
| 217 DEFINE_bool(use_gvn, true, "use hydrogen global value numbering") | 220 DEFINE_bool(use_gvn, true, "use hydrogen global value numbering") |
| 218 DEFINE_bool(use_canonicalizing, true, "use hydrogen instruction canonicalizing") | 221 DEFINE_bool(use_canonicalizing, true, "use hydrogen instruction canonicalizing") |
| 219 DEFINE_bool(use_inlining, true, "use function inlining") | 222 DEFINE_bool(use_inlining, true, "use function inlining") |
| 220 DEFINE_bool(use_escape_analysis, false, "use hydrogen escape analysis") | 223 DEFINE_bool(use_escape_analysis, false, "use hydrogen escape analysis") |
| 221 DEFINE_bool(use_allocation_folding, true, "use allocation folding") | 224 DEFINE_bool(use_allocation_folding, true, "use allocation folding") |
| 225 DEFINE_int(max_inlining_levels, 5, "maximum number of inlining levels") |
| 222 DEFINE_int(max_inlined_source_size, 600, | 226 DEFINE_int(max_inlined_source_size, 600, |
| 223 "maximum source size in bytes considered for a single inlining") | 227 "maximum source size in bytes considered for a single inlining") |
| 224 DEFINE_int(max_inlined_nodes, 196, | 228 DEFINE_int(max_inlined_nodes, 196, |
| 225 "maximum number of AST nodes considered for a single inlining") | 229 "maximum number of AST nodes considered for a single inlining") |
| 226 DEFINE_int(max_inlined_nodes_cumulative, 196, | 230 DEFINE_int(max_inlined_nodes_cumulative, 400, |
| 227 "maximum cumulative number of AST nodes considered for inlining") | 231 "maximum cumulative number of AST nodes considered for inlining") |
| 228 DEFINE_bool(loop_invariant_code_motion, true, "loop invariant code motion") | 232 DEFINE_bool(loop_invariant_code_motion, true, "loop invariant code motion") |
| 229 DEFINE_bool(fast_math, true, "faster (but maybe less accurate) math functions") | 233 DEFINE_bool(fast_math, true, "faster (but maybe less accurate) math functions") |
| 230 DEFINE_bool(collect_megamorphic_maps_from_stub_cache, | 234 DEFINE_bool(collect_megamorphic_maps_from_stub_cache, |
| 231 true, | 235 true, |
| 232 "crankshaft harvests type feedback from stub cache") | 236 "crankshaft harvests type feedback from stub cache") |
| 233 DEFINE_bool(hydrogen_stats, false, "print statistics for hydrogen") | 237 DEFINE_bool(hydrogen_stats, false, "print statistics for hydrogen") |
| 234 DEFINE_bool(trace_hydrogen, false, "trace generated hydrogen to file") | 238 DEFINE_bool(trace_hydrogen, false, "trace generated hydrogen to file") |
| 235 DEFINE_string(trace_phase, "Z", "trace generated IR for specified phases") | 239 DEFINE_string(trace_phase, "Z", "trace generated IR for specified phases") |
| 236 DEFINE_bool(trace_inlining, false, "trace inlining decisions") | 240 DEFINE_bool(trace_inlining, false, "trace inlining decisions") |
| 237 DEFINE_bool(trace_alloc, false, "trace register allocator") | 241 DEFINE_bool(trace_alloc, false, "trace register allocator") |
| 238 DEFINE_bool(trace_all_uses, false, "trace all use positions") | 242 DEFINE_bool(trace_all_uses, false, "trace all use positions") |
| 239 DEFINE_bool(trace_range, false, "trace range analysis") | 243 DEFINE_bool(trace_range, false, "trace range analysis") |
| 240 DEFINE_bool(trace_gvn, false, "trace global value numbering") | 244 DEFINE_bool(trace_gvn, false, "trace global value numbering") |
| 241 DEFINE_bool(trace_representation, false, "trace representation types") | 245 DEFINE_bool(trace_representation, false, "trace representation types") |
| 242 DEFINE_bool(trace_escape_analysis, false, "trace hydrogen escape analysis") | 246 DEFINE_bool(trace_escape_analysis, false, "trace hydrogen escape analysis") |
| 243 DEFINE_bool(trace_allocation_folding, false, "trace allocation folding") | 247 DEFINE_bool(trace_allocation_folding, false, "trace allocation folding") |
| 244 DEFINE_bool(trace_track_allocation_sites, false, | 248 DEFINE_bool(trace_track_allocation_sites, false, |
| 245 "trace the tracking of allocation sites") | 249 "trace the tracking of allocation sites") |
| 246 DEFINE_bool(trace_migration, false, "trace object migration") | 250 DEFINE_bool(trace_migration, false, "trace object migration") |
| 247 DEFINE_bool(trace_generalization, false, "trace map generalization") | 251 DEFINE_bool(trace_generalization, false, "trace map generalization") |
| 248 DEFINE_bool(stress_pointer_maps, false, "pointer map for every instruction") | 252 DEFINE_bool(stress_pointer_maps, false, "pointer map for every instruction") |
| 249 DEFINE_bool(stress_environments, false, "environment for every instruction") | 253 DEFINE_bool(stress_environments, false, "environment for every instruction") |
| 250 DEFINE_int(deopt_every_n_times, | 254 DEFINE_int(deopt_every_n_times, |
| 251 0, | 255 0, |
| 252 "deoptimize every n times a deopt point is passed") | 256 "deoptimize every n times a deopt point is passed") |
| 253 DEFINE_int(deopt_every_n_garbage_collections, | 257 DEFINE_int(deopt_every_n_garbage_collections, |
| 254 0, | 258 0, |
| 255 "deoptimize every n garbage collections") | 259 "deoptimize every n garbage collections") |
| 260 DEFINE_bool(print_deopt_stress, false, "print number of possible deopt points") |
| 256 DEFINE_bool(trap_on_deopt, false, "put a break point before deoptimizing") | 261 DEFINE_bool(trap_on_deopt, false, "put a break point before deoptimizing") |
| 257 DEFINE_bool(deoptimize_uncommon_cases, true, "deoptimize uncommon cases") | 262 DEFINE_bool(deoptimize_uncommon_cases, true, "deoptimize uncommon cases") |
| 258 DEFINE_bool(polymorphic_inlining, true, "polymorphic inlining") | 263 DEFINE_bool(polymorphic_inlining, true, "polymorphic inlining") |
| 259 DEFINE_bool(use_osr, true, "use on-stack replacement") | 264 DEFINE_bool(use_osr, true, "use on-stack replacement") |
| 260 DEFINE_bool(idefs, false, "use informative definitions") | 265 DEFINE_bool(idefs, false, "use informative definitions") |
| 261 DEFINE_bool(array_bounds_checks_elimination, true, | 266 DEFINE_bool(array_bounds_checks_elimination, true, |
| 262 "perform array bounds checks elimination") | 267 "perform array bounds checks elimination") |
| 263 DEFINE_bool(array_index_dehoisting, true, | 268 DEFINE_bool(array_index_dehoisting, true, |
| 264 "perform array index dehoisting") | 269 "perform array index dehoisting") |
| 265 DEFINE_bool(analyze_environment_liveness, true, | 270 DEFINE_bool(analyze_environment_liveness, true, |
| (...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 #undef DEFINE_bool | 828 #undef DEFINE_bool |
| 824 #undef DEFINE_int | 829 #undef DEFINE_int |
| 825 #undef DEFINE_string | 830 #undef DEFINE_string |
| 826 #undef DEFINE_implication | 831 #undef DEFINE_implication |
| 827 | 832 |
| 828 #undef FLAG_MODE_DECLARE | 833 #undef FLAG_MODE_DECLARE |
| 829 #undef FLAG_MODE_DEFINE | 834 #undef FLAG_MODE_DEFINE |
| 830 #undef FLAG_MODE_DEFINE_DEFAULTS | 835 #undef FLAG_MODE_DEFINE_DEFAULTS |
| 831 #undef FLAG_MODE_META | 836 #undef FLAG_MODE_META |
| 832 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 837 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
| OLD | NEW |