diff options
Diffstat (limited to 'chromium/v8/src/flags/flag-definitions.h')
-rw-r--r-- | chromium/v8/src/flags/flag-definitions.h | 147 |
1 files changed, 95 insertions, 52 deletions
diff --git a/chromium/v8/src/flags/flag-definitions.h b/chromium/v8/src/flags/flag-definitions.h index fa59c204613..e1f493ae7b1 100644 --- a/chromium/v8/src/flags/flag-definitions.h +++ b/chromium/v8/src/flags/flag-definitions.h @@ -151,6 +151,12 @@ struct MaybeBoolFlag { #define COMPRESS_POINTERS_BOOL false #endif +#ifdef V8_MAP_PACKING +#define V8_MAP_PACKING_BOOL true +#else +#define V8_MAP_PACKING_BOOL false +#endif + #ifdef V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE #define COMPRESS_POINTERS_IN_ISOLATE_CAGE_BOOL true #else @@ -176,7 +182,7 @@ struct MaybeBoolFlag { #endif #if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64 || \ - V8_TARGET_ARCH_ARM + V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_RISCV64 #define ENABLE_SPARKPLUG true #else // TODO(v8:11421): Enable Sparkplug for other architectures @@ -259,8 +265,6 @@ DEFINE_BOOL(use_strict, false, "enforce strict mode") DEFINE_BOOL(harmony, false, "enable all completed harmony features") DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features") -// Enabling FinalizationRegistry#cleanupSome also enables weak refs -DEFINE_IMPLICATION(harmony_weak_refs_with_cleanup_some, harmony_weak_refs) // Update bootstrapper.cc whenever adding a new feature flag. @@ -269,12 +273,13 @@ DEFINE_IMPLICATION(harmony_weak_refs_with_cleanup_some, harmony_weak_refs) V(harmony_regexp_sequence, "RegExp Unicode sequence properties") \ V(harmony_weak_refs_with_cleanup_some, \ "harmony weak references with FinalizationRegistry.prototype.cleanupSome") \ - V(harmony_import_assertions, "harmony import assertions") + V(harmony_import_assertions, "harmony import assertions") \ + V(harmony_rab_gsab, \ + "harmony ResizableArrayBuffer / GrowableSharedArrayBuffer") #ifdef V8_INTL_SUPPORT -#define HARMONY_INPROGRESS(V) \ - HARMONY_INPROGRESS_BASE(V) \ - V(harmony_intl_best_fit_matcher, "Intl BestFitMatcher") \ +#define HARMONY_INPROGRESS(V) \ + HARMONY_INPROGRESS_BASE(V) \ V(harmony_intl_displaynames_date_types, "Intl.DisplayNames date types") #else #define HARMONY_INPROGRESS(V) HARMONY_INPROGRESS_BASE(V) @@ -282,14 +287,14 @@ DEFINE_IMPLICATION(harmony_weak_refs_with_cleanup_some, harmony_weak_refs) // Features that are complete (but still behind --harmony/es-staging flag). #define HARMONY_STAGED_BASE(V) \ - V(harmony_relative_indexing_methods, "harmony relative indexing methods") \ - V(harmony_class_static_blocks, "harmony static initializer blocks") + V(harmony_class_static_blocks, "harmony static initializer blocks") \ + V(harmony_error_cause, "harmony error cause property") #ifdef V8_INTL_SUPPORT -#define HARMONY_STAGED(V) \ - HARMONY_STAGED_BASE(V) \ - V(harmony_intl_dateformat_day_period, \ - "Add dayPeriod option to DateTimeFormat") +#define HARMONY_STAGED(V) \ + HARMONY_STAGED_BASE(V) \ + V(harmony_intl_best_fit_matcher, "Intl BestFitMatcher") \ + V(harmony_intl_locale_info, "Intl locale info") #else #define HARMONY_STAGED(V) HARMONY_STAGED_BASE(V) #endif @@ -298,13 +303,16 @@ DEFINE_IMPLICATION(harmony_weak_refs_with_cleanup_some, harmony_weak_refs) #define HARMONY_SHIPPING_BASE(V) \ V(harmony_sharedarraybuffer, "harmony sharedarraybuffer") \ V(harmony_atomics, "harmony atomics") \ - V(harmony_weak_refs, "harmony weak references") \ V(harmony_regexp_match_indices, "harmony regexp match indices") \ V(harmony_private_brand_checks, "harmony private brand checks") \ - V(harmony_top_level_await, "harmony top level await") + V(harmony_top_level_await, "harmony top level await") \ + V(harmony_relative_indexing_methods, "harmony relative indexing methods") #ifdef V8_INTL_SUPPORT -#define HARMONY_SHIPPING(V) HARMONY_SHIPPING_BASE(V) +#define HARMONY_SHIPPING(V) \ + HARMONY_SHIPPING_BASE(V) \ + V(harmony_intl_dateformat_day_period, \ + "Add dayPeriod option to DateTimeFormat") #else #define HARMONY_SHIPPING(V) HARMONY_SHIPPING_BASE(V) #endif @@ -334,6 +342,13 @@ HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES) DEFINE_BOOL(builtin_subclassing, true, "subclassing support in built-in methods") +// If the following flag is set to `true`, the SharedArrayBuffer constructor is +// enabled per context depending on the callback set via +// `SetSharedArrayBufferConstructorEnabledCallback`. If no callback is set, the +// SharedArrayBuffer constructor is disabled. +DEFINE_BOOL(enable_sharedarraybuffer_per_context, false, + "enable the SharedArrayBuffer constructor per context") + #ifdef V8_INTL_SUPPORT DEFINE_BOOL(icu_timezone_data, true, "get information about timezones from ICU") #endif @@ -362,6 +377,17 @@ DEFINE_BOOL(icu_timezone_data, true, "get information about timezones from ICU") #define V8_SHARED_RO_HEAP_BOOL false #endif +DEFINE_BOOL(stress_snapshot, false, + "disables sharing of the read-only heap for testing") +// Incremental marking is incompatible with the stress_snapshot mode; +// specifically, serialization may clear bytecode arrays from shared function +// infos which the MarkCompactCollector (running concurrently) may still need. +// See also https://crbug.com/v8/10882. +// +// Note: This is not an issue in production because we don't clear SFI's +// there (that only happens in mksnapshot and in --stress-snapshot mode). +DEFINE_NEG_IMPLICATION(stress_snapshot, incremental_marking) + DEFINE_BOOL(lite_mode, V8_LITE_BOOL, "enables trade-off of performance for memory savings") @@ -379,6 +405,13 @@ DEFINE_IMPLICATION(lite_mode, optimize_for_size) DEFINE_NEG_IMPLICATION(enable_third_party_heap, inline_new) DEFINE_NEG_IMPLICATION(enable_third_party_heap, allocation_site_pretenuring) DEFINE_NEG_IMPLICATION(enable_third_party_heap, turbo_allocation_folding) +DEFINE_NEG_IMPLICATION(enable_third_party_heap, concurrent_recompilation) +DEFINE_NEG_IMPLICATION(enable_third_party_heap, concurrent_inlining) +DEFINE_NEG_IMPLICATION(enable_third_party_heap, + finalize_streaming_on_background) +DEFINE_NEG_IMPLICATION(enable_third_party_heap, use_marking_progress_bar) +DEFINE_NEG_IMPLICATION(enable_third_party_heap, move_object_start) +DEFINE_NEG_IMPLICATION(enable_third_party_heap, concurrent_marking) DEFINE_BOOL_READONLY(enable_third_party_heap, V8_ENABLE_THIRD_PARTY_HEAP_BOOL, "Use third-party heap") @@ -407,19 +440,15 @@ DEFINE_BOOL_READONLY(enable_unconditional_write_barriers, "always use full write barriers") #ifdef V8_ENABLE_SINGLE_GENERATION -#define V8_GENERATION_BOOL true +#define V8_SINGLE_GENERATION_BOOL true #else -#define V8_GENERATION_BOOL false +#define V8_SINGLE_GENERATION_BOOL false #endif DEFINE_BOOL_READONLY( - single_generation, V8_GENERATION_BOOL, + single_generation, V8_SINGLE_GENERATION_BOOL, "allocate all objects from young generation to old generation") -// Prevent inline allocation into new space -DEFINE_NEG_IMPLICATION(single_generation, inline_new) -DEFINE_NEG_IMPLICATION(single_generation, turbo_allocation_folding) - #ifdef V8_ENABLE_CONSERVATIVE_STACK_SCANNING #define V8_ENABLE_CONSERVATIVE_STACK_SCANNING_BOOL true #else @@ -589,7 +618,6 @@ DEFINE_BOOL(trace_generalization, false, "trace map generalization") // Flags for TurboProp. DEFINE_BOOL(turboprop, false, "enable experimental turboprop mid-tier compiler") -DEFINE_IMPLICATION(turboprop, turbo_direct_heap_access) DEFINE_BOOL(turboprop_mid_tier_reg_alloc, true, "enable mid-tier register allocator for turboprop") DEFINE_BOOL( @@ -619,11 +647,10 @@ DEFINE_BOOL(always_sparkplug, false, "directly tier up to Sparkplug code") DEFINE_IMPLICATION(always_sparkplug, sparkplug) #endif DEFINE_STRING(sparkplug_filter, "*", "filter for Sparkplug baseline compiler") +DEFINE_BOOL(sparkplug_needs_short_builtins, false, + "only enable Sparkplug baseline compiler when " + "--short-builtin-calls are also enabled") DEFINE_BOOL(trace_baseline, false, "trace baseline compilation") -#if !defined(V8_OS_MACOSX) || !defined(V8_HOST_ARCH_ARM64) -// Don't disable --write-protect-code-memory on Apple Silicon. -DEFINE_WEAK_VALUE_IMPLICATION(sparkplug, write_protect_code_memory, false) -#endif #undef FLAG #define FLAG FLAG_FULL @@ -652,13 +679,16 @@ DEFINE_BOOL(concurrent_inlining, false, "run optimizing compiler's inlining phase on a separate thread") DEFINE_BOOL(stress_concurrent_inlining, false, "makes concurrent inlining more likely to trigger in tests") -DEFINE_BOOL(turbo_direct_heap_access, false, - "access kNeverSerialized objects directly from the heap") DEFINE_IMPLICATION(stress_concurrent_inlining, concurrent_inlining) DEFINE_NEG_IMPLICATION(stress_concurrent_inlining, lazy_feedback_allocation) DEFINE_WEAK_VALUE_IMPLICATION(stress_concurrent_inlining, interrupt_budget, 15 * KB) -DEFINE_IMPLICATION(concurrent_inlining, turbo_direct_heap_access) +DEFINE_BOOL( + turbo_concurrent_get_property_access_info, false, + "concurrently call GetPropertyAccessInfo (only with --concurrent-inlining)") +DEFINE_BOOL(turbo_concurrent_inlining_check_ispendingallocation, false, + "when --concurrent-inlining is enabled, check IsPendingAllocation " + "in Ref construction") DEFINE_INT(max_serializer_nesting, 25, "maximum levels for nesting child serializers") DEFINE_WEAK_IMPLICATION(future, concurrent_inlining) @@ -811,28 +841,20 @@ DEFINE_INT(reuse_opt_code_count, 0, "don't discard optimized code for the specified number of deopts.") DEFINE_BOOL(turbo_dynamic_map_checks, true, "use dynamic map checks when generating code for property accesses " - "if all handlers in an IC are the same for turboprop and NCI") + "if all handlers in an IC are the same for turboprop") DEFINE_BOOL(turbo_compress_translation_arrays, false, "compress translation arrays (experimental)") DEFINE_BOOL(turbo_inline_js_wasm_calls, false, "inline JS->Wasm calls") - -// Native context independent (NCI) code. -DEFINE_BOOL(turbo_nci, false, - "enable experimental native context independent code.") -// TODO(v8:8888): Temporary until NCI caching is implemented or -// feedback collection is made unconditional. -DEFINE_IMPLICATION(turbo_nci, turbo_collect_feedback_in_generic_lowering) -DEFINE_BOOL(print_nci_code, false, "print native context independent code.") -DEFINE_BOOL(trace_turbo_nci, false, "trace native context independent code.") DEFINE_BOOL(turbo_collect_feedback_in_generic_lowering, true, "enable experimental feedback collection in generic lowering.") -// TODO(jgruber,v8:8888): Remove this flag once we've settled on an ageing -// strategy. DEFINE_BOOL(isolate_script_cache_ageing, true, "enable ageing of the isolate script cache.") -DEFINE_INT(script_run_delay, 0, "sleep [ms] on every Script::Run") -DEFINE_INT(script_run_delay_once, 0, "sleep [ms] on the first Script::Run") +DEFINE_FLOAT(script_delay, 0, "busy wait [ms] on every Script::Run") +DEFINE_FLOAT(script_delay_once, 0, "busy wait [ms] on the first Script::Run") +DEFINE_FLOAT(script_delay_fraction, 0.0, + "busy wait after each Script::Run by the given fraction of the " + "run's duration") // Favor memory over execution speed. DEFINE_BOOL(optimize_for_size, false, @@ -862,7 +884,11 @@ DEFINE_VALUE_IMPLICATION(single_threaded, wasm_num_compilation_tasks, 0) DEFINE_DEBUG_BOOL(trace_wasm_native_heap, false, "trace wasm native heap events") DEFINE_BOOL(wasm_write_protect_code_memory, false, - "write protect code memory on the wasm native heap") + "write protect code memory on the wasm native heap with mprotect") +DEFINE_BOOL(wasm_memory_protection_keys, false, + "protect wasm code memory with PKU if available, no protection " + "without support; fallback to mprotect by adding " + "--wasm-write-protect-code-memory") DEFINE_DEBUG_BOOL(trace_wasm_serialization, false, "trace serialization/deserialization") DEFINE_BOOL(wasm_async_compilation, true, @@ -1172,7 +1198,6 @@ DEFINE_GENERIC_IMPLICATION( TracingFlags::gc_stats.store( v8::tracing::TracingCategoryObserver::ENABLED_BY_NATIVE)) DEFINE_NEG_IMPLICATION(trace_gc_object_stats, incremental_marking) -DEFINE_NEG_IMPLICATION(track_retaining_path, incremental_marking) DEFINE_NEG_IMPLICATION(track_retaining_path, parallel_marking) DEFINE_NEG_IMPLICATION(track_retaining_path, concurrent_marking) DEFINE_BOOL(track_detached_contexts, true, @@ -1261,11 +1286,19 @@ DEFINE_BOOL_READONLY( "object space") // assembler-ia32.cc / assembler-arm.cc / assembler-arm64.cc / assembler-x64.cc +#ifdef V8_ENABLE_DEBUG_CODE DEFINE_BOOL(debug_code, DEBUG_BOOL, "generate extra code (assertions) for debugging") +#else +DEFINE_BOOL_READONLY(debug_code, false, "") +#endif +#ifdef V8_CODE_COMMENTS DEFINE_BOOL(code_comments, false, "emit comments in code disassembly; for more readable source " "positions you should add --no-concurrent_recompilation") +#else +DEFINE_BOOL_READONLY(code_comments, false, "") +#endif DEFINE_BOOL(enable_sse3, true, "enable use of SSE3 instructions if available") DEFINE_BOOL(enable_ssse3, true, "enable use of SSSE3 instructions if available") DEFINE_BOOL(enable_sse4_1, true, @@ -1293,10 +1326,18 @@ DEFINE_BOOL(partial_constant_pool, true, DEFINE_STRING(sim_arm64_optional_features, "none", "enable optional features on the simulator for testing: none or " "all") -DEFINE_BOOL(debug_riscv, false, "enable debug prints") -// TODO(RISCV): https://github.com/v8-riscv/v8/issues/330 -DEFINE_BOOL(disable_riscv_constant_pool, true, - "disable constant pool (RISCV only)") + +#if defined(V8_TARGET_ARCH_RISCV64) +DEFINE_BOOL(riscv_trap_to_simulator_debugger, false, + "enable simulator trap to debugger") +DEFINE_BOOL(riscv_debug, false, "enable debug prints") + +DEFINE_BOOL(riscv_constant_pool, true, + "enable constant pool (RISCV only)") + +DEFINE_BOOL(riscv_c_extension, false, + "enable compressed extension isa variant (RISCV only)") +#endif // Controlling source positions for Torque/CSA code. DEFINE_BOOL(enable_source_at_csa_bind, false, @@ -1472,6 +1513,8 @@ DEFINE_BOOL(native_code_counters, DEBUG_BOOL, DEFINE_BOOL(super_ic, true, "use an IC for super property loads") +DEFINE_BOOL(enable_mega_dom_ic, false, "use MegaDOM IC state for API objects") + // objects.cc DEFINE_BOOL(thin_strings, true, "Enable ThinString support") DEFINE_BOOL(trace_prototype_users, false, @@ -1554,7 +1597,7 @@ DEFINE_BOOL( "includes arguments for each function call in the error stack frames array") DEFINE_BOOL(adjust_os_scheduling_parameters, true, "adjust OS specific scheduling params for the isolate") -DEFINE_BOOL(experimental_flush_embedded_blob_icache, false, +DEFINE_BOOL(experimental_flush_embedded_blob_icache, true, "Used in an experiment to evaluate icache flushing on certain CPUs") // Flags for short builtin calls feature |