From aed36482ba7888154d4286763be8828375046cfc Mon Sep 17 00:00:00 2001 From: Alexander Frick Date: Thu, 10 Aug 2023 23:44:29 -0500 Subject: [PATCH] M115 stage 1 --- other/AVX2/v8/BUILD.gn | 201 ++++++++++++++----------- other/CrOS/v8/BUILD.gn | 201 ++++++++++++++----------- other/SSE3/v8/BUILD.gn | 201 ++++++++++++++----------- src/chrome/app/chrome_main_delegate.cc | 8 +- src/chrome/common/chrome_constants.cc | 10 ++ src/chrome/common/chrome_constants.h | 6 + src/v8/BUILD.gn | 201 ++++++++++++++----------- thorium-libjxl | 2 +- 8 files changed, 482 insertions(+), 348 deletions(-) diff --git a/other/AVX2/v8/BUILD.gn b/other/AVX2/v8/BUILD.gn index 6ffdf812..1b0659bc 100644 --- a/other/AVX2/v8/BUILD.gn +++ b/other/AVX2/v8/BUILD.gn @@ -307,7 +307,7 @@ declare_args() { # Enable heap reservation of size 4GB. Only possible for 64bit archs. cppgc_enable_caged_heap = v8_current_cpu == "x64" || v8_current_cpu == "arm64" || - v8_current_cpu == "loong64" + v8_current_cpu == "loong64" || v8_current_cpu == "riscv64" # Enables additional heap verification phases and checks. cppgc_enable_verify_heap = "" @@ -662,7 +662,8 @@ assert(!v8_enable_unconditional_write_barriers || !v8_disable_write_barriers, "Write barriers can't be both enabled and disabled") assert(!cppgc_enable_caged_heap || v8_current_cpu == "x64" || - v8_current_cpu == "arm64" || v8_current_cpu == "loong64", + v8_current_cpu == "arm64" || v8_current_cpu == "loong64" || + v8_current_cpu == "riscv64", "CppGC caged heap requires 64bit platforms") assert(!cppgc_enable_young_generation || cppgc_enable_caged_heap, @@ -893,6 +894,7 @@ external_cppgc_defines = [ "CPPGC_SLIM_WRITE_BARRIER", "CPPGC_YOUNG_GENERATION", "CPPGC_POINTER_COMPRESSION", + "CPPGC_ENABLE_LARGER_CAGE", ] enabled_external_cppgc_defines = [] @@ -920,6 +922,9 @@ if (cppgc_enable_pointer_compression) { if (cppgc_enable_2gb_cage) { enabled_external_cppgc_defines += [ "CPPGC_2GB_CAGE" ] } +if (cppgc_enable_larger_cage) { + enabled_external_cppgc_defines += [ "CPPGC_ENABLE_LARGER_CAGE" ] +} if (cppgc_enable_slim_write_barrier) { enabled_external_cppgc_defines += [ "CPPGC_SLIM_WRITE_BARRIER" ] } @@ -1950,6 +1955,7 @@ torque_files = [ "src/objects/module.tq", "src/objects/name.tq", "src/objects/oddball.tq", + "src/objects/hole.tq", "src/objects/ordered-hash-table.tq", "src/objects/primitive-heap-object.tq", "src/objects/promise.tq", @@ -2412,65 +2418,94 @@ action("v8_dump_build_config") { outputs = [ "$root_out_dir/v8_build_config.json" ] is_DEBUG_defined = v8_enable_debugging_features || dcheck_always_on is_full_debug = v8_enable_debugging_features && !v8_optimized_debug + + arch = v8_target_cpu + if (v8_target_cpu == "x86") { + arch = "ia32" + } + + mips_arch_variant_var = "" + mips_use_msa_var = false + if (arch == "mips64" || arch == "mips64el") { + mips_arch_variant_var = mips_arch_variant + mips_use_msa_var = mips_use_msa + } + + js_shared_memory = + v8_enable_shared_ro_heap && (!v8_enable_pointer_compression || + v8_enable_pointer_compression_shared_cage) && + !v8_disable_write_barriers + simd_mips = mips_arch_variant_var == "r6" && mips_use_msa + simulator_run = target_cpu != v8_target_cpu + use_sanitizer = is_asan || is_cfi || is_msan || is_tsan || is_ubsan + + # This lists all build-time switches consumed by the test framework. All + # switches can be used automatically in the status files as is - no + # further files need to be modified. + # + # Naming conventions: Keep switch names short and remove unnecessary + # qualifiers. Drop v8_enable_, v8_, is_ where possible. + # Keep only qualifiers that disambiguate the switches from other things. + # Examples: has_turbofan disambiguates from the turbofan runtime variant, + # is_android disambiguates from the android keyword in status files, + # v8_cfi disambiguates from the global cfi flag. args = [ rebase_path("$root_out_dir/v8_build_config.json", root_build_dir), + "arch=\"$arch\"", + "asan=$is_asan", + "atomic_object_field_writes=$v8_enable_atomic_object_field_writes", + "cet_shadow_stack=$v8_enable_cet_shadow_stack", + "cfi=$is_cfi", + "clang=$is_clang", + "clang_coverage=$use_clang_coverage", + "code_comments=$v8_code_comments", + "component_build=$is_component_build", + "concurrent_marking=$v8_enable_concurrent_marking", + "conservative_stack_scanning=$v8_enable_conservative_stack_scanning", "current_cpu=\"$current_cpu\"", "dcheck_always_on=$dcheck_always_on", + "debug_code=$v8_enable_debug_code", + "DEBUG_defined=$is_DEBUG_defined", + "debugging_features=$v8_enable_debugging_features", + "dict_property_const_tracking=$v8_dict_property_const_tracking", + "direct_local=$v8_enable_direct_local", + "disassembler=$v8_enable_disassembler", + "full_debug=$is_full_debug", + "gdbjit=$v8_enable_gdbjit", + "has_jitless=$v8_jitless", + "has_maglev=$v8_enable_maglev", + "has_turbofan=$v8_enable_turbofan", + "has_webassembly=$v8_enable_webassembly", + "i18n=$v8_enable_i18n_support", "is_android=$is_android", - "is_asan=$is_asan", - "is_cfi=$is_cfi", - "is_clang=$is_clang", - "is_clang_coverage=$use_clang_coverage", - "is_component_build=$is_component_build", - "is_debug=$v8_enable_debugging_features", - "is_DEBUG_defined=$is_DEBUG_defined", - "is_full_debug=$is_full_debug", - "is_msan=$is_msan", - "is_tsan=$is_tsan", - "is_ubsan_vptr=$is_ubsan_vptr", + "is_ios=$is_ios", + "js_shared_memory=$js_shared_memory", + "lite_mode=$v8_enable_lite_mode", + "mips_arch_variant=\"$mips_arch_variant_var\"", + "mips_use_msa=$mips_use_msa_var", + "msan=$is_msan", + "official_build=$is_official_build", + "pointer_compression=$v8_enable_pointer_compression", + "pointer_compression_shared_cage=$v8_enable_pointer_compression_shared_cage", + "runtime_call_stats=$v8_enable_runtime_call_stats", + "sandbox=$v8_enable_sandbox", + "shared_ro_heap=$v8_enable_shared_ro_heap", + "simd_mips=$simd_mips", + "simulator_run=$simulator_run", + "single_generation=$v8_enable_single_generation", + "slow_dchecks=$v8_enable_slow_dchecks", "target_cpu=\"$target_cpu\"", - "v8_code_comments=$v8_code_comments", - "v8_control_flow_integrity=$v8_control_flow_integrity", + "third_party_heap=$v8_enable_third_party_heap", + "tsan=$is_tsan", + "ubsan=$is_ubsan", + "use_sanitizer=$use_sanitizer", + "v8_cfi=$v8_control_flow_integrity", "v8_current_cpu=\"$v8_current_cpu\"", - "v8_dict_property_const_tracking=$v8_dict_property_const_tracking", - "v8_disable_write_barriers=$v8_disable_write_barriers", - "v8_enable_atomic_object_field_writes=" + - "$v8_enable_atomic_object_field_writes", - "v8_enable_cet_shadow_stack=$v8_enable_cet_shadow_stack", - "v8_enable_concurrent_marking=$v8_enable_concurrent_marking", - "v8_enable_conservative_stack_scanning=" + - "$v8_enable_conservative_stack_scanning", - "v8_enable_debug_code=$v8_enable_debug_code", - "v8_enable_direct_local=$v8_enable_direct_local", - "v8_enable_disassembler=$v8_enable_disassembler", - "v8_enable_gdbjit=$v8_enable_gdbjit", - "v8_enable_i18n_support=$v8_enable_i18n_support", - "v8_enable_lite_mode=$v8_enable_lite_mode", - "v8_enable_maglev=$v8_enable_maglev", - "v8_enable_pointer_compression=$v8_enable_pointer_compression", - "v8_enable_pointer_compression_shared_cage=" + - "$v8_enable_pointer_compression_shared_cage", - "v8_enable_runtime_call_stats=$v8_enable_runtime_call_stats", - "v8_enable_sandbox=$v8_enable_sandbox", - "v8_enable_shared_ro_heap=$v8_enable_shared_ro_heap", - "v8_enable_single_generation=$v8_enable_single_generation", - "v8_enable_slow_dchecks=$v8_enable_slow_dchecks", - "v8_enable_third_party_heap=$v8_enable_third_party_heap", - "v8_enable_turbofan=$v8_enable_turbofan", - "v8_enable_verify_csa=$v8_enable_verify_csa", - "v8_enable_verify_heap=$v8_enable_verify_heap", - "v8_enable_verify_predictable=$v8_enable_verify_predictable", - "v8_enable_webassembly=$v8_enable_webassembly", - "v8_jitless=$v8_jitless", "v8_target_cpu=\"$v8_target_cpu\"", + "verify_csa=$v8_enable_verify_csa", + "verify_heap=$v8_enable_verify_heap", + "verify_predictable=$v8_enable_verify_predictable", ] - - if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { - args += [ - "mips_arch_variant=\"$mips_arch_variant\"", - "mips_use_msa=$mips_use_msa", - ] - } } ############################################################################### @@ -3080,6 +3115,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/operator-properties.h", "src/compiler/operator.h", "src/compiler/osr.h", + "src/compiler/pair-load-store-reducer.h", "src/compiler/per-isolate-compiler-cache.h", "src/compiler/persistent-map.h", "src/compiler/phase.h", @@ -3120,7 +3156,6 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/graph.h", "src/compiler/turboshaft/index.h", "src/compiler/turboshaft/late-escape-analysis-reducer.h", - "src/compiler/turboshaft/late-optimization-phase.h", "src/compiler/turboshaft/layered-hash-map.h", "src/compiler/turboshaft/machine-lowering-phase.h", "src/compiler/turboshaft/machine-lowering-reducer.h", @@ -3131,6 +3166,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/optimization-phase.h", "src/compiler/turboshaft/optimize-phase.h", "src/compiler/turboshaft/phase.h", + "src/compiler/turboshaft/pretenuring-propagation-reducer.h", "src/compiler/turboshaft/recreate-schedule-phase.h", "src/compiler/turboshaft/recreate-schedule.h", "src/compiler/turboshaft/reducer-traits.h", @@ -3140,8 +3176,9 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/sidetable.h", "src/compiler/turboshaft/simplify-tf-loops.h", "src/compiler/turboshaft/snapshot-table.h", + "src/compiler/turboshaft/store-store-elimination-phase.h", + "src/compiler/turboshaft/store-store-elimination-reducer.h", "src/compiler/turboshaft/structural-optimization-reducer.h", - "src/compiler/turboshaft/tag-untag-lowering-phase.h", "src/compiler/turboshaft/tag-untag-lowering-reducer.h", "src/compiler/turboshaft/tracing.h", "src/compiler/turboshaft/type-assertions-phase.h", @@ -3274,6 +3311,7 @@ v8_header_set("v8_internal_headers") { "src/heap/cppgc-js/unified-heap-marking-visitor.h", "src/heap/cppgc-js/wrappable-info-inl.h", "src/heap/cppgc-js/wrappable-info.h", + "src/heap/ephemeron-remembered-set.h", "src/heap/evacuation-allocator-inl.h", "src/heap/evacuation-allocator.h", "src/heap/evacuation-verifier-inl.h", @@ -3301,8 +3339,6 @@ v8_header_set("v8_internal_headers") { "src/heap/incremental-marking-job.h", "src/heap/incremental-marking.h", "src/heap/index-generator.h", - "src/heap/invalidated-slots-inl.h", - "src/heap/invalidated-slots.h", "src/heap/large-spaces.h", "src/heap/linear-allocation-area.h", "src/heap/list.h", @@ -3475,6 +3511,8 @@ v8_header_set("v8_internal_headers") { "src/objects/heap-number.h", "src/objects/heap-object-inl.h", "src/objects/heap-object.h", + "src/objects/hole-inl.h", + "src/objects/hole.h", "src/objects/instance-type-inl.h", "src/objects/instance-type.h", "src/objects/internal-index.h", @@ -3693,6 +3731,8 @@ v8_header_set("v8_internal_headers") { "src/runtime/runtime.h", "src/sandbox/bounded-size-inl.h", "src/sandbox/bounded-size.h", + "src/sandbox/external-entity-table-inl.h", + "src/sandbox/external-entity-table.h", "src/sandbox/external-pointer-inl.h", "src/sandbox/external-pointer-table-inl.h", "src/sandbox/external-pointer-table.h", @@ -3829,6 +3869,7 @@ v8_header_set("v8_internal_headers") { "src/asmjs/asm-scanner.h", "src/asmjs/asm-types.h", "src/compiler/int64-lowering.h", + "src/compiler/wasm-address-reassociation.h", "src/compiler/wasm-call-descriptors.h", "src/compiler/wasm-compiler-definitions.h", "src/compiler/wasm-compiler.h", @@ -3846,7 +3887,6 @@ v8_header_set("v8_internal_headers") { "src/third_party/utf8-decoder/generalized-utf8-decoder.h", "src/trap-handler/trap-handler-internal.h", "src/trap-handler/trap-handler.h", - "src/wasm/assembler-buffer-cache.h", "src/wasm/baseline/liftoff-assembler-defs.h", "src/wasm/baseline/liftoff-assembler.h", "src/wasm/baseline/liftoff-compiler.h", @@ -4370,6 +4410,7 @@ v8_compiler_sources = [ "src/compiler/operator-properties.cc", "src/compiler/operator.cc", "src/compiler/osr.cc", + "src/compiler/pair-load-store-reducer.cc", "src/compiler/pipeline-statistics.cc", "src/compiler/pipeline.cc", "src/compiler/property-access-builder.cc", @@ -4486,6 +4527,7 @@ if (v8_current_cpu == "x86") { if (v8_enable_webassembly) { v8_compiler_sources += [ "src/compiler/int64-lowering.cc", + "src/compiler/wasm-address-reassociation.cc", "src/compiler/wasm-call-descriptors.cc", "src/compiler/wasm-compiler.cc", "src/compiler/wasm-escape-analysis.cc", @@ -4585,18 +4627,18 @@ v8_source_set("v8_turboshaft") { "src/compiler/turboshaft/graph-visualizer.cc", "src/compiler/turboshaft/graph.cc", "src/compiler/turboshaft/late-escape-analysis-reducer.cc", - "src/compiler/turboshaft/late-optimization-phase.cc", "src/compiler/turboshaft/machine-lowering-phase.cc", "src/compiler/turboshaft/memory-optimization-reducer.cc", "src/compiler/turboshaft/operations.cc", "src/compiler/turboshaft/optimization-phase.cc", "src/compiler/turboshaft/optimize-phase.cc", "src/compiler/turboshaft/phase.cc", + "src/compiler/turboshaft/pretenuring-propagation-reducer.cc", "src/compiler/turboshaft/recreate-schedule-phase.cc", "src/compiler/turboshaft/recreate-schedule.cc", "src/compiler/turboshaft/representations.cc", "src/compiler/turboshaft/simplify-tf-loops.cc", - "src/compiler/turboshaft/tag-untag-lowering-phase.cc", + "src/compiler/turboshaft/store-store-elimination-phase.cc", "src/compiler/turboshaft/type-assertions-phase.cc", "src/compiler/turboshaft/type-parser.cc", "src/compiler/turboshaft/typed-optimizations-phase.cc", @@ -4820,6 +4862,7 @@ v8_source_set("v8_base_without_compiler") { "src/heap/cppgc-js/unified-heap-marking-state.cc", "src/heap/cppgc-js/unified-heap-marking-verifier.cc", "src/heap/cppgc-js/unified-heap-marking-visitor.cc", + "src/heap/ephemeron-remembered-set.cc", "src/heap/evacuation-verifier.cc", "src/heap/factory-base.cc", "src/heap/factory.cc", @@ -4836,7 +4879,6 @@ v8_source_set("v8_base_without_compiler") { "src/heap/incremental-marking-job.cc", "src/heap/incremental-marking.cc", "src/heap/index-generator.cc", - "src/heap/invalidated-slots.cc", "src/heap/large-spaces.cc", "src/heap/local-factory.cc", "src/heap/local-heap.cc", @@ -5156,7 +5198,6 @@ v8_source_set("v8_base_without_compiler") { "src/trap-handler/handler-inside.cc", "src/trap-handler/handler-outside.cc", "src/trap-handler/handler-shared.cc", - "src/wasm/assembler-buffer-cache.cc", "src/wasm/baseline/liftoff-assembler.cc", "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/canonical-types.cc", @@ -5556,13 +5597,6 @@ v8_source_set("v8_base_without_compiler") { ] deps += [ "src/third_party/vtune:v8_vtune_trace_mark" ] } - - if (v8_use_perfetto) { - sources += [ - "src/tracing/trace-categories.cc", - "src/tracing/trace-categories.h", - ] - } } group("v8_base") { @@ -5723,6 +5757,7 @@ v8_component("v8_libbase") { "src/base/cpu.h", "src/base/debug/stack_trace.cc", "src/base/debug/stack_trace.h", + "src/base/discriminated-union.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", "src/base/emulated-virtual-address-subspace.cc", @@ -5827,6 +5862,8 @@ v8_component("v8_libbase") { deps = [ ":v8_config_headers" ] + libs = [] + data = [] data_deps = [] @@ -5917,6 +5954,7 @@ v8_component("v8_libbase") { sources += [ "src/base/debug/stack_trace_win.cc", "src/base/platform/platform-win32.cc", + "src/base/platform/platform-win32.h", "src/base/win32-headers.h", ] @@ -6002,6 +6040,8 @@ v8_component("v8_libplatform") { "src/libplatform/default-job.h", "src/libplatform/default-platform.cc", "src/libplatform/default-platform.h", + "src/libplatform/default-thread-isolated-allocator.cc", + "src/libplatform/default-thread-isolated-allocator.h", "src/libplatform/default-worker-threads-task-runner.cc", "src/libplatform/default-worker-threads-task-runner.h", "src/libplatform/delayed-task-queue.cc", @@ -6362,6 +6402,13 @@ v8_source_set("cppgc_base") { } else { public_deps += [ ":v8_tracing" ] } + + if (v8_use_perfetto) { + sources += [ + "src/tracing/trace-categories.cc", + "src/tracing/trace-categories.h", + ] + } } if (v8_check_header_includes) { @@ -6732,7 +6779,6 @@ group("v8_fuzzers") { ":v8_simple_inspector_fuzzer", ":v8_simple_json_fuzzer", ":v8_simple_parser_fuzzer", - ":v8_simple_regexp_builtins_fuzzer", ":v8_simple_regexp_fuzzer", ] @@ -7053,23 +7099,6 @@ v8_source_set("parser_fuzzer") { v8_fuzzer("parser_fuzzer") { } -v8_source_set("regexp_builtins_fuzzer") { - sources = [ - "test/fuzzer/regexp-builtins.cc", - "test/fuzzer/regexp_builtins/mjsunit.js.h", - ] - - deps = [ ":fuzzer_support" ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("regexp_builtins_fuzzer") { -} - v8_source_set("regexp_fuzzer") { sources = [ "test/fuzzer/regexp.cc" ] diff --git a/other/CrOS/v8/BUILD.gn b/other/CrOS/v8/BUILD.gn index c110561a..a3cd0cbb 100644 --- a/other/CrOS/v8/BUILD.gn +++ b/other/CrOS/v8/BUILD.gn @@ -307,7 +307,7 @@ declare_args() { # Enable heap reservation of size 4GB. Only possible for 64bit archs. cppgc_enable_caged_heap = v8_current_cpu == "x64" || v8_current_cpu == "arm64" || - v8_current_cpu == "loong64" + v8_current_cpu == "loong64" || v8_current_cpu == "riscv64" # Enables additional heap verification phases and checks. cppgc_enable_verify_heap = "" @@ -662,7 +662,8 @@ assert(!v8_enable_unconditional_write_barriers || !v8_disable_write_barriers, "Write barriers can't be both enabled and disabled") assert(!cppgc_enable_caged_heap || v8_current_cpu == "x64" || - v8_current_cpu == "arm64" || v8_current_cpu == "loong64", + v8_current_cpu == "arm64" || v8_current_cpu == "loong64" || + v8_current_cpu == "riscv64", "CppGC caged heap requires 64bit platforms") assert(!cppgc_enable_young_generation || cppgc_enable_caged_heap, @@ -893,6 +894,7 @@ external_cppgc_defines = [ "CPPGC_SLIM_WRITE_BARRIER", "CPPGC_YOUNG_GENERATION", "CPPGC_POINTER_COMPRESSION", + "CPPGC_ENABLE_LARGER_CAGE", ] enabled_external_cppgc_defines = [] @@ -920,6 +922,9 @@ if (cppgc_enable_pointer_compression) { if (cppgc_enable_2gb_cage) { enabled_external_cppgc_defines += [ "CPPGC_2GB_CAGE" ] } +if (cppgc_enable_larger_cage) { + enabled_external_cppgc_defines += [ "CPPGC_ENABLE_LARGER_CAGE" ] +} if (cppgc_enable_slim_write_barrier) { enabled_external_cppgc_defines += [ "CPPGC_SLIM_WRITE_BARRIER" ] } @@ -1950,6 +1955,7 @@ torque_files = [ "src/objects/module.tq", "src/objects/name.tq", "src/objects/oddball.tq", + "src/objects/hole.tq", "src/objects/ordered-hash-table.tq", "src/objects/primitive-heap-object.tq", "src/objects/promise.tq", @@ -2412,65 +2418,94 @@ action("v8_dump_build_config") { outputs = [ "$root_out_dir/v8_build_config.json" ] is_DEBUG_defined = v8_enable_debugging_features || dcheck_always_on is_full_debug = v8_enable_debugging_features && !v8_optimized_debug + + arch = v8_target_cpu + if (v8_target_cpu == "x86") { + arch = "ia32" + } + + mips_arch_variant_var = "" + mips_use_msa_var = false + if (arch == "mips64" || arch == "mips64el") { + mips_arch_variant_var = mips_arch_variant + mips_use_msa_var = mips_use_msa + } + + js_shared_memory = + v8_enable_shared_ro_heap && (!v8_enable_pointer_compression || + v8_enable_pointer_compression_shared_cage) && + !v8_disable_write_barriers + simd_mips = mips_arch_variant_var == "r6" && mips_use_msa + simulator_run = target_cpu != v8_target_cpu + use_sanitizer = is_asan || is_cfi || is_msan || is_tsan || is_ubsan + + # This lists all build-time switches consumed by the test framework. All + # switches can be used automatically in the status files as is - no + # further files need to be modified. + # + # Naming conventions: Keep switch names short and remove unnecessary + # qualifiers. Drop v8_enable_, v8_, is_ where possible. + # Keep only qualifiers that disambiguate the switches from other things. + # Examples: has_turbofan disambiguates from the turbofan runtime variant, + # is_android disambiguates from the android keyword in status files, + # v8_cfi disambiguates from the global cfi flag. args = [ rebase_path("$root_out_dir/v8_build_config.json", root_build_dir), + "arch=\"$arch\"", + "asan=$is_asan", + "atomic_object_field_writes=$v8_enable_atomic_object_field_writes", + "cet_shadow_stack=$v8_enable_cet_shadow_stack", + "cfi=$is_cfi", + "clang=$is_clang", + "clang_coverage=$use_clang_coverage", + "code_comments=$v8_code_comments", + "component_build=$is_component_build", + "concurrent_marking=$v8_enable_concurrent_marking", + "conservative_stack_scanning=$v8_enable_conservative_stack_scanning", "current_cpu=\"$current_cpu\"", "dcheck_always_on=$dcheck_always_on", + "debug_code=$v8_enable_debug_code", + "DEBUG_defined=$is_DEBUG_defined", + "debugging_features=$v8_enable_debugging_features", + "dict_property_const_tracking=$v8_dict_property_const_tracking", + "direct_local=$v8_enable_direct_local", + "disassembler=$v8_enable_disassembler", + "full_debug=$is_full_debug", + "gdbjit=$v8_enable_gdbjit", + "has_jitless=$v8_jitless", + "has_maglev=$v8_enable_maglev", + "has_turbofan=$v8_enable_turbofan", + "has_webassembly=$v8_enable_webassembly", + "i18n=$v8_enable_i18n_support", "is_android=$is_android", - "is_asan=$is_asan", - "is_cfi=$is_cfi", - "is_clang=$is_clang", - "is_clang_coverage=$use_clang_coverage", - "is_component_build=$is_component_build", - "is_debug=$v8_enable_debugging_features", - "is_DEBUG_defined=$is_DEBUG_defined", - "is_full_debug=$is_full_debug", - "is_msan=$is_msan", - "is_tsan=$is_tsan", - "is_ubsan_vptr=$is_ubsan_vptr", + "is_ios=$is_ios", + "js_shared_memory=$js_shared_memory", + "lite_mode=$v8_enable_lite_mode", + "mips_arch_variant=\"$mips_arch_variant_var\"", + "mips_use_msa=$mips_use_msa_var", + "msan=$is_msan", + "official_build=$is_official_build", + "pointer_compression=$v8_enable_pointer_compression", + "pointer_compression_shared_cage=$v8_enable_pointer_compression_shared_cage", + "runtime_call_stats=$v8_enable_runtime_call_stats", + "sandbox=$v8_enable_sandbox", + "shared_ro_heap=$v8_enable_shared_ro_heap", + "simd_mips=$simd_mips", + "simulator_run=$simulator_run", + "single_generation=$v8_enable_single_generation", + "slow_dchecks=$v8_enable_slow_dchecks", "target_cpu=\"$target_cpu\"", - "v8_code_comments=$v8_code_comments", - "v8_control_flow_integrity=$v8_control_flow_integrity", + "third_party_heap=$v8_enable_third_party_heap", + "tsan=$is_tsan", + "ubsan=$is_ubsan", + "use_sanitizer=$use_sanitizer", + "v8_cfi=$v8_control_flow_integrity", "v8_current_cpu=\"$v8_current_cpu\"", - "v8_dict_property_const_tracking=$v8_dict_property_const_tracking", - "v8_disable_write_barriers=$v8_disable_write_barriers", - "v8_enable_atomic_object_field_writes=" + - "$v8_enable_atomic_object_field_writes", - "v8_enable_cet_shadow_stack=$v8_enable_cet_shadow_stack", - "v8_enable_concurrent_marking=$v8_enable_concurrent_marking", - "v8_enable_conservative_stack_scanning=" + - "$v8_enable_conservative_stack_scanning", - "v8_enable_debug_code=$v8_enable_debug_code", - "v8_enable_direct_local=$v8_enable_direct_local", - "v8_enable_disassembler=$v8_enable_disassembler", - "v8_enable_gdbjit=$v8_enable_gdbjit", - "v8_enable_i18n_support=$v8_enable_i18n_support", - "v8_enable_lite_mode=$v8_enable_lite_mode", - "v8_enable_maglev=$v8_enable_maglev", - "v8_enable_pointer_compression=$v8_enable_pointer_compression", - "v8_enable_pointer_compression_shared_cage=" + - "$v8_enable_pointer_compression_shared_cage", - "v8_enable_runtime_call_stats=$v8_enable_runtime_call_stats", - "v8_enable_sandbox=$v8_enable_sandbox", - "v8_enable_shared_ro_heap=$v8_enable_shared_ro_heap", - "v8_enable_single_generation=$v8_enable_single_generation", - "v8_enable_slow_dchecks=$v8_enable_slow_dchecks", - "v8_enable_third_party_heap=$v8_enable_third_party_heap", - "v8_enable_turbofan=$v8_enable_turbofan", - "v8_enable_verify_csa=$v8_enable_verify_csa", - "v8_enable_verify_heap=$v8_enable_verify_heap", - "v8_enable_verify_predictable=$v8_enable_verify_predictable", - "v8_enable_webassembly=$v8_enable_webassembly", - "v8_jitless=$v8_jitless", "v8_target_cpu=\"$v8_target_cpu\"", + "verify_csa=$v8_enable_verify_csa", + "verify_heap=$v8_enable_verify_heap", + "verify_predictable=$v8_enable_verify_predictable", ] - - if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { - args += [ - "mips_arch_variant=\"$mips_arch_variant\"", - "mips_use_msa=$mips_use_msa", - ] - } } ############################################################################### @@ -3080,6 +3115,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/operator-properties.h", "src/compiler/operator.h", "src/compiler/osr.h", + "src/compiler/pair-load-store-reducer.h", "src/compiler/per-isolate-compiler-cache.h", "src/compiler/persistent-map.h", "src/compiler/phase.h", @@ -3120,7 +3156,6 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/graph.h", "src/compiler/turboshaft/index.h", "src/compiler/turboshaft/late-escape-analysis-reducer.h", - "src/compiler/turboshaft/late-optimization-phase.h", "src/compiler/turboshaft/layered-hash-map.h", "src/compiler/turboshaft/machine-lowering-phase.h", "src/compiler/turboshaft/machine-lowering-reducer.h", @@ -3131,6 +3166,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/optimization-phase.h", "src/compiler/turboshaft/optimize-phase.h", "src/compiler/turboshaft/phase.h", + "src/compiler/turboshaft/pretenuring-propagation-reducer.h", "src/compiler/turboshaft/recreate-schedule-phase.h", "src/compiler/turboshaft/recreate-schedule.h", "src/compiler/turboshaft/reducer-traits.h", @@ -3140,8 +3176,9 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/sidetable.h", "src/compiler/turboshaft/simplify-tf-loops.h", "src/compiler/turboshaft/snapshot-table.h", + "src/compiler/turboshaft/store-store-elimination-phase.h", + "src/compiler/turboshaft/store-store-elimination-reducer.h", "src/compiler/turboshaft/structural-optimization-reducer.h", - "src/compiler/turboshaft/tag-untag-lowering-phase.h", "src/compiler/turboshaft/tag-untag-lowering-reducer.h", "src/compiler/turboshaft/tracing.h", "src/compiler/turboshaft/type-assertions-phase.h", @@ -3274,6 +3311,7 @@ v8_header_set("v8_internal_headers") { "src/heap/cppgc-js/unified-heap-marking-visitor.h", "src/heap/cppgc-js/wrappable-info-inl.h", "src/heap/cppgc-js/wrappable-info.h", + "src/heap/ephemeron-remembered-set.h", "src/heap/evacuation-allocator-inl.h", "src/heap/evacuation-allocator.h", "src/heap/evacuation-verifier-inl.h", @@ -3301,8 +3339,6 @@ v8_header_set("v8_internal_headers") { "src/heap/incremental-marking-job.h", "src/heap/incremental-marking.h", "src/heap/index-generator.h", - "src/heap/invalidated-slots-inl.h", - "src/heap/invalidated-slots.h", "src/heap/large-spaces.h", "src/heap/linear-allocation-area.h", "src/heap/list.h", @@ -3475,6 +3511,8 @@ v8_header_set("v8_internal_headers") { "src/objects/heap-number.h", "src/objects/heap-object-inl.h", "src/objects/heap-object.h", + "src/objects/hole-inl.h", + "src/objects/hole.h", "src/objects/instance-type-inl.h", "src/objects/instance-type.h", "src/objects/internal-index.h", @@ -3693,6 +3731,8 @@ v8_header_set("v8_internal_headers") { "src/runtime/runtime.h", "src/sandbox/bounded-size-inl.h", "src/sandbox/bounded-size.h", + "src/sandbox/external-entity-table-inl.h", + "src/sandbox/external-entity-table.h", "src/sandbox/external-pointer-inl.h", "src/sandbox/external-pointer-table-inl.h", "src/sandbox/external-pointer-table.h", @@ -3829,6 +3869,7 @@ v8_header_set("v8_internal_headers") { "src/asmjs/asm-scanner.h", "src/asmjs/asm-types.h", "src/compiler/int64-lowering.h", + "src/compiler/wasm-address-reassociation.h", "src/compiler/wasm-call-descriptors.h", "src/compiler/wasm-compiler-definitions.h", "src/compiler/wasm-compiler.h", @@ -3846,7 +3887,6 @@ v8_header_set("v8_internal_headers") { "src/third_party/utf8-decoder/generalized-utf8-decoder.h", "src/trap-handler/trap-handler-internal.h", "src/trap-handler/trap-handler.h", - "src/wasm/assembler-buffer-cache.h", "src/wasm/baseline/liftoff-assembler-defs.h", "src/wasm/baseline/liftoff-assembler.h", "src/wasm/baseline/liftoff-compiler.h", @@ -4370,6 +4410,7 @@ v8_compiler_sources = [ "src/compiler/operator-properties.cc", "src/compiler/operator.cc", "src/compiler/osr.cc", + "src/compiler/pair-load-store-reducer.cc", "src/compiler/pipeline-statistics.cc", "src/compiler/pipeline.cc", "src/compiler/property-access-builder.cc", @@ -4486,6 +4527,7 @@ if (v8_current_cpu == "x86") { if (v8_enable_webassembly) { v8_compiler_sources += [ "src/compiler/int64-lowering.cc", + "src/compiler/wasm-address-reassociation.cc", "src/compiler/wasm-call-descriptors.cc", "src/compiler/wasm-compiler.cc", "src/compiler/wasm-escape-analysis.cc", @@ -4585,18 +4627,18 @@ v8_source_set("v8_turboshaft") { "src/compiler/turboshaft/graph-visualizer.cc", "src/compiler/turboshaft/graph.cc", "src/compiler/turboshaft/late-escape-analysis-reducer.cc", - "src/compiler/turboshaft/late-optimization-phase.cc", "src/compiler/turboshaft/machine-lowering-phase.cc", "src/compiler/turboshaft/memory-optimization-reducer.cc", "src/compiler/turboshaft/operations.cc", "src/compiler/turboshaft/optimization-phase.cc", "src/compiler/turboshaft/optimize-phase.cc", "src/compiler/turboshaft/phase.cc", + "src/compiler/turboshaft/pretenuring-propagation-reducer.cc", "src/compiler/turboshaft/recreate-schedule-phase.cc", "src/compiler/turboshaft/recreate-schedule.cc", "src/compiler/turboshaft/representations.cc", "src/compiler/turboshaft/simplify-tf-loops.cc", - "src/compiler/turboshaft/tag-untag-lowering-phase.cc", + "src/compiler/turboshaft/store-store-elimination-phase.cc", "src/compiler/turboshaft/type-assertions-phase.cc", "src/compiler/turboshaft/type-parser.cc", "src/compiler/turboshaft/typed-optimizations-phase.cc", @@ -4820,6 +4862,7 @@ v8_source_set("v8_base_without_compiler") { "src/heap/cppgc-js/unified-heap-marking-state.cc", "src/heap/cppgc-js/unified-heap-marking-verifier.cc", "src/heap/cppgc-js/unified-heap-marking-visitor.cc", + "src/heap/ephemeron-remembered-set.cc", "src/heap/evacuation-verifier.cc", "src/heap/factory-base.cc", "src/heap/factory.cc", @@ -4836,7 +4879,6 @@ v8_source_set("v8_base_without_compiler") { "src/heap/incremental-marking-job.cc", "src/heap/incremental-marking.cc", "src/heap/index-generator.cc", - "src/heap/invalidated-slots.cc", "src/heap/large-spaces.cc", "src/heap/local-factory.cc", "src/heap/local-heap.cc", @@ -5156,7 +5198,6 @@ v8_source_set("v8_base_without_compiler") { "src/trap-handler/handler-inside.cc", "src/trap-handler/handler-outside.cc", "src/trap-handler/handler-shared.cc", - "src/wasm/assembler-buffer-cache.cc", "src/wasm/baseline/liftoff-assembler.cc", "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/canonical-types.cc", @@ -5556,13 +5597,6 @@ v8_source_set("v8_base_without_compiler") { ] deps += [ "src/third_party/vtune:v8_vtune_trace_mark" ] } - - if (v8_use_perfetto) { - sources += [ - "src/tracing/trace-categories.cc", - "src/tracing/trace-categories.h", - ] - } } group("v8_base") { @@ -5723,6 +5757,7 @@ v8_component("v8_libbase") { "src/base/cpu.h", "src/base/debug/stack_trace.cc", "src/base/debug/stack_trace.h", + "src/base/discriminated-union.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", "src/base/emulated-virtual-address-subspace.cc", @@ -5827,6 +5862,8 @@ v8_component("v8_libbase") { deps = [ ":v8_config_headers" ] + libs = [] + data = [] data_deps = [] @@ -5917,6 +5954,7 @@ v8_component("v8_libbase") { sources += [ "src/base/debug/stack_trace_win.cc", "src/base/platform/platform-win32.cc", + "src/base/platform/platform-win32.h", "src/base/win32-headers.h", ] @@ -6002,6 +6040,8 @@ v8_component("v8_libplatform") { "src/libplatform/default-job.h", "src/libplatform/default-platform.cc", "src/libplatform/default-platform.h", + "src/libplatform/default-thread-isolated-allocator.cc", + "src/libplatform/default-thread-isolated-allocator.h", "src/libplatform/default-worker-threads-task-runner.cc", "src/libplatform/default-worker-threads-task-runner.h", "src/libplatform/delayed-task-queue.cc", @@ -6362,6 +6402,13 @@ v8_source_set("cppgc_base") { } else { public_deps += [ ":v8_tracing" ] } + + if (v8_use_perfetto) { + sources += [ + "src/tracing/trace-categories.cc", + "src/tracing/trace-categories.h", + ] + } } if (v8_check_header_includes) { @@ -6732,7 +6779,6 @@ group("v8_fuzzers") { ":v8_simple_inspector_fuzzer", ":v8_simple_json_fuzzer", ":v8_simple_parser_fuzzer", - ":v8_simple_regexp_builtins_fuzzer", ":v8_simple_regexp_fuzzer", ] @@ -7053,23 +7099,6 @@ v8_source_set("parser_fuzzer") { v8_fuzzer("parser_fuzzer") { } -v8_source_set("regexp_builtins_fuzzer") { - sources = [ - "test/fuzzer/regexp-builtins.cc", - "test/fuzzer/regexp_builtins/mjsunit.js.h", - ] - - deps = [ ":fuzzer_support" ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("regexp_builtins_fuzzer") { -} - v8_source_set("regexp_fuzzer") { sources = [ "test/fuzzer/regexp.cc" ] diff --git a/other/SSE3/v8/BUILD.gn b/other/SSE3/v8/BUILD.gn index 0f3b0fad..46d5ba6f 100644 --- a/other/SSE3/v8/BUILD.gn +++ b/other/SSE3/v8/BUILD.gn @@ -307,7 +307,7 @@ declare_args() { # Enable heap reservation of size 4GB. Only possible for 64bit archs. cppgc_enable_caged_heap = v8_current_cpu == "x64" || v8_current_cpu == "arm64" || - v8_current_cpu == "loong64" + v8_current_cpu == "loong64" || v8_current_cpu == "riscv64" # Enables additional heap verification phases and checks. cppgc_enable_verify_heap = "" @@ -662,7 +662,8 @@ assert(!v8_enable_unconditional_write_barriers || !v8_disable_write_barriers, "Write barriers can't be both enabled and disabled") assert(!cppgc_enable_caged_heap || v8_current_cpu == "x64" || - v8_current_cpu == "arm64" || v8_current_cpu == "loong64", + v8_current_cpu == "arm64" || v8_current_cpu == "loong64" || + v8_current_cpu == "riscv64", "CppGC caged heap requires 64bit platforms") assert(!cppgc_enable_young_generation || cppgc_enable_caged_heap, @@ -893,6 +894,7 @@ external_cppgc_defines = [ "CPPGC_SLIM_WRITE_BARRIER", "CPPGC_YOUNG_GENERATION", "CPPGC_POINTER_COMPRESSION", + "CPPGC_ENABLE_LARGER_CAGE", ] enabled_external_cppgc_defines = [] @@ -920,6 +922,9 @@ if (cppgc_enable_pointer_compression) { if (cppgc_enable_2gb_cage) { enabled_external_cppgc_defines += [ "CPPGC_2GB_CAGE" ] } +if (cppgc_enable_larger_cage) { + enabled_external_cppgc_defines += [ "CPPGC_ENABLE_LARGER_CAGE" ] +} if (cppgc_enable_slim_write_barrier) { enabled_external_cppgc_defines += [ "CPPGC_SLIM_WRITE_BARRIER" ] } @@ -1950,6 +1955,7 @@ torque_files = [ "src/objects/module.tq", "src/objects/name.tq", "src/objects/oddball.tq", + "src/objects/hole.tq", "src/objects/ordered-hash-table.tq", "src/objects/primitive-heap-object.tq", "src/objects/promise.tq", @@ -2412,65 +2418,94 @@ action("v8_dump_build_config") { outputs = [ "$root_out_dir/v8_build_config.json" ] is_DEBUG_defined = v8_enable_debugging_features || dcheck_always_on is_full_debug = v8_enable_debugging_features && !v8_optimized_debug + + arch = v8_target_cpu + if (v8_target_cpu == "x86") { + arch = "ia32" + } + + mips_arch_variant_var = "" + mips_use_msa_var = false + if (arch == "mips64" || arch == "mips64el") { + mips_arch_variant_var = mips_arch_variant + mips_use_msa_var = mips_use_msa + } + + js_shared_memory = + v8_enable_shared_ro_heap && (!v8_enable_pointer_compression || + v8_enable_pointer_compression_shared_cage) && + !v8_disable_write_barriers + simd_mips = mips_arch_variant_var == "r6" && mips_use_msa + simulator_run = target_cpu != v8_target_cpu + use_sanitizer = is_asan || is_cfi || is_msan || is_tsan || is_ubsan + + # This lists all build-time switches consumed by the test framework. All + # switches can be used automatically in the status files as is - no + # further files need to be modified. + # + # Naming conventions: Keep switch names short and remove unnecessary + # qualifiers. Drop v8_enable_, v8_, is_ where possible. + # Keep only qualifiers that disambiguate the switches from other things. + # Examples: has_turbofan disambiguates from the turbofan runtime variant, + # is_android disambiguates from the android keyword in status files, + # v8_cfi disambiguates from the global cfi flag. args = [ rebase_path("$root_out_dir/v8_build_config.json", root_build_dir), + "arch=\"$arch\"", + "asan=$is_asan", + "atomic_object_field_writes=$v8_enable_atomic_object_field_writes", + "cet_shadow_stack=$v8_enable_cet_shadow_stack", + "cfi=$is_cfi", + "clang=$is_clang", + "clang_coverage=$use_clang_coverage", + "code_comments=$v8_code_comments", + "component_build=$is_component_build", + "concurrent_marking=$v8_enable_concurrent_marking", + "conservative_stack_scanning=$v8_enable_conservative_stack_scanning", "current_cpu=\"$current_cpu\"", "dcheck_always_on=$dcheck_always_on", + "debug_code=$v8_enable_debug_code", + "DEBUG_defined=$is_DEBUG_defined", + "debugging_features=$v8_enable_debugging_features", + "dict_property_const_tracking=$v8_dict_property_const_tracking", + "direct_local=$v8_enable_direct_local", + "disassembler=$v8_enable_disassembler", + "full_debug=$is_full_debug", + "gdbjit=$v8_enable_gdbjit", + "has_jitless=$v8_jitless", + "has_maglev=$v8_enable_maglev", + "has_turbofan=$v8_enable_turbofan", + "has_webassembly=$v8_enable_webassembly", + "i18n=$v8_enable_i18n_support", "is_android=$is_android", - "is_asan=$is_asan", - "is_cfi=$is_cfi", - "is_clang=$is_clang", - "is_clang_coverage=$use_clang_coverage", - "is_component_build=$is_component_build", - "is_debug=$v8_enable_debugging_features", - "is_DEBUG_defined=$is_DEBUG_defined", - "is_full_debug=$is_full_debug", - "is_msan=$is_msan", - "is_tsan=$is_tsan", - "is_ubsan_vptr=$is_ubsan_vptr", + "is_ios=$is_ios", + "js_shared_memory=$js_shared_memory", + "lite_mode=$v8_enable_lite_mode", + "mips_arch_variant=\"$mips_arch_variant_var\"", + "mips_use_msa=$mips_use_msa_var", + "msan=$is_msan", + "official_build=$is_official_build", + "pointer_compression=$v8_enable_pointer_compression", + "pointer_compression_shared_cage=$v8_enable_pointer_compression_shared_cage", + "runtime_call_stats=$v8_enable_runtime_call_stats", + "sandbox=$v8_enable_sandbox", + "shared_ro_heap=$v8_enable_shared_ro_heap", + "simd_mips=$simd_mips", + "simulator_run=$simulator_run", + "single_generation=$v8_enable_single_generation", + "slow_dchecks=$v8_enable_slow_dchecks", "target_cpu=\"$target_cpu\"", - "v8_code_comments=$v8_code_comments", - "v8_control_flow_integrity=$v8_control_flow_integrity", + "third_party_heap=$v8_enable_third_party_heap", + "tsan=$is_tsan", + "ubsan=$is_ubsan", + "use_sanitizer=$use_sanitizer", + "v8_cfi=$v8_control_flow_integrity", "v8_current_cpu=\"$v8_current_cpu\"", - "v8_dict_property_const_tracking=$v8_dict_property_const_tracking", - "v8_disable_write_barriers=$v8_disable_write_barriers", - "v8_enable_atomic_object_field_writes=" + - "$v8_enable_atomic_object_field_writes", - "v8_enable_cet_shadow_stack=$v8_enable_cet_shadow_stack", - "v8_enable_concurrent_marking=$v8_enable_concurrent_marking", - "v8_enable_conservative_stack_scanning=" + - "$v8_enable_conservative_stack_scanning", - "v8_enable_debug_code=$v8_enable_debug_code", - "v8_enable_direct_local=$v8_enable_direct_local", - "v8_enable_disassembler=$v8_enable_disassembler", - "v8_enable_gdbjit=$v8_enable_gdbjit", - "v8_enable_i18n_support=$v8_enable_i18n_support", - "v8_enable_lite_mode=$v8_enable_lite_mode", - "v8_enable_maglev=$v8_enable_maglev", - "v8_enable_pointer_compression=$v8_enable_pointer_compression", - "v8_enable_pointer_compression_shared_cage=" + - "$v8_enable_pointer_compression_shared_cage", - "v8_enable_runtime_call_stats=$v8_enable_runtime_call_stats", - "v8_enable_sandbox=$v8_enable_sandbox", - "v8_enable_shared_ro_heap=$v8_enable_shared_ro_heap", - "v8_enable_single_generation=$v8_enable_single_generation", - "v8_enable_slow_dchecks=$v8_enable_slow_dchecks", - "v8_enable_third_party_heap=$v8_enable_third_party_heap", - "v8_enable_turbofan=$v8_enable_turbofan", - "v8_enable_verify_csa=$v8_enable_verify_csa", - "v8_enable_verify_heap=$v8_enable_verify_heap", - "v8_enable_verify_predictable=$v8_enable_verify_predictable", - "v8_enable_webassembly=$v8_enable_webassembly", - "v8_jitless=$v8_jitless", "v8_target_cpu=\"$v8_target_cpu\"", + "verify_csa=$v8_enable_verify_csa", + "verify_heap=$v8_enable_verify_heap", + "verify_predictable=$v8_enable_verify_predictable", ] - - if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { - args += [ - "mips_arch_variant=\"$mips_arch_variant\"", - "mips_use_msa=$mips_use_msa", - ] - } } ############################################################################### @@ -3080,6 +3115,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/operator-properties.h", "src/compiler/operator.h", "src/compiler/osr.h", + "src/compiler/pair-load-store-reducer.h", "src/compiler/per-isolate-compiler-cache.h", "src/compiler/persistent-map.h", "src/compiler/phase.h", @@ -3120,7 +3156,6 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/graph.h", "src/compiler/turboshaft/index.h", "src/compiler/turboshaft/late-escape-analysis-reducer.h", - "src/compiler/turboshaft/late-optimization-phase.h", "src/compiler/turboshaft/layered-hash-map.h", "src/compiler/turboshaft/machine-lowering-phase.h", "src/compiler/turboshaft/machine-lowering-reducer.h", @@ -3131,6 +3166,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/optimization-phase.h", "src/compiler/turboshaft/optimize-phase.h", "src/compiler/turboshaft/phase.h", + "src/compiler/turboshaft/pretenuring-propagation-reducer.h", "src/compiler/turboshaft/recreate-schedule-phase.h", "src/compiler/turboshaft/recreate-schedule.h", "src/compiler/turboshaft/reducer-traits.h", @@ -3140,8 +3176,9 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/sidetable.h", "src/compiler/turboshaft/simplify-tf-loops.h", "src/compiler/turboshaft/snapshot-table.h", + "src/compiler/turboshaft/store-store-elimination-phase.h", + "src/compiler/turboshaft/store-store-elimination-reducer.h", "src/compiler/turboshaft/structural-optimization-reducer.h", - "src/compiler/turboshaft/tag-untag-lowering-phase.h", "src/compiler/turboshaft/tag-untag-lowering-reducer.h", "src/compiler/turboshaft/tracing.h", "src/compiler/turboshaft/type-assertions-phase.h", @@ -3274,6 +3311,7 @@ v8_header_set("v8_internal_headers") { "src/heap/cppgc-js/unified-heap-marking-visitor.h", "src/heap/cppgc-js/wrappable-info-inl.h", "src/heap/cppgc-js/wrappable-info.h", + "src/heap/ephemeron-remembered-set.h", "src/heap/evacuation-allocator-inl.h", "src/heap/evacuation-allocator.h", "src/heap/evacuation-verifier-inl.h", @@ -3301,8 +3339,6 @@ v8_header_set("v8_internal_headers") { "src/heap/incremental-marking-job.h", "src/heap/incremental-marking.h", "src/heap/index-generator.h", - "src/heap/invalidated-slots-inl.h", - "src/heap/invalidated-slots.h", "src/heap/large-spaces.h", "src/heap/linear-allocation-area.h", "src/heap/list.h", @@ -3475,6 +3511,8 @@ v8_header_set("v8_internal_headers") { "src/objects/heap-number.h", "src/objects/heap-object-inl.h", "src/objects/heap-object.h", + "src/objects/hole-inl.h", + "src/objects/hole.h", "src/objects/instance-type-inl.h", "src/objects/instance-type.h", "src/objects/internal-index.h", @@ -3693,6 +3731,8 @@ v8_header_set("v8_internal_headers") { "src/runtime/runtime.h", "src/sandbox/bounded-size-inl.h", "src/sandbox/bounded-size.h", + "src/sandbox/external-entity-table-inl.h", + "src/sandbox/external-entity-table.h", "src/sandbox/external-pointer-inl.h", "src/sandbox/external-pointer-table-inl.h", "src/sandbox/external-pointer-table.h", @@ -3829,6 +3869,7 @@ v8_header_set("v8_internal_headers") { "src/asmjs/asm-scanner.h", "src/asmjs/asm-types.h", "src/compiler/int64-lowering.h", + "src/compiler/wasm-address-reassociation.h", "src/compiler/wasm-call-descriptors.h", "src/compiler/wasm-compiler-definitions.h", "src/compiler/wasm-compiler.h", @@ -3846,7 +3887,6 @@ v8_header_set("v8_internal_headers") { "src/third_party/utf8-decoder/generalized-utf8-decoder.h", "src/trap-handler/trap-handler-internal.h", "src/trap-handler/trap-handler.h", - "src/wasm/assembler-buffer-cache.h", "src/wasm/baseline/liftoff-assembler-defs.h", "src/wasm/baseline/liftoff-assembler.h", "src/wasm/baseline/liftoff-compiler.h", @@ -4370,6 +4410,7 @@ v8_compiler_sources = [ "src/compiler/operator-properties.cc", "src/compiler/operator.cc", "src/compiler/osr.cc", + "src/compiler/pair-load-store-reducer.cc", "src/compiler/pipeline-statistics.cc", "src/compiler/pipeline.cc", "src/compiler/property-access-builder.cc", @@ -4486,6 +4527,7 @@ if (v8_current_cpu == "x86") { if (v8_enable_webassembly) { v8_compiler_sources += [ "src/compiler/int64-lowering.cc", + "src/compiler/wasm-address-reassociation.cc", "src/compiler/wasm-call-descriptors.cc", "src/compiler/wasm-compiler.cc", "src/compiler/wasm-escape-analysis.cc", @@ -4585,18 +4627,18 @@ v8_source_set("v8_turboshaft") { "src/compiler/turboshaft/graph-visualizer.cc", "src/compiler/turboshaft/graph.cc", "src/compiler/turboshaft/late-escape-analysis-reducer.cc", - "src/compiler/turboshaft/late-optimization-phase.cc", "src/compiler/turboshaft/machine-lowering-phase.cc", "src/compiler/turboshaft/memory-optimization-reducer.cc", "src/compiler/turboshaft/operations.cc", "src/compiler/turboshaft/optimization-phase.cc", "src/compiler/turboshaft/optimize-phase.cc", "src/compiler/turboshaft/phase.cc", + "src/compiler/turboshaft/pretenuring-propagation-reducer.cc", "src/compiler/turboshaft/recreate-schedule-phase.cc", "src/compiler/turboshaft/recreate-schedule.cc", "src/compiler/turboshaft/representations.cc", "src/compiler/turboshaft/simplify-tf-loops.cc", - "src/compiler/turboshaft/tag-untag-lowering-phase.cc", + "src/compiler/turboshaft/store-store-elimination-phase.cc", "src/compiler/turboshaft/type-assertions-phase.cc", "src/compiler/turboshaft/type-parser.cc", "src/compiler/turboshaft/typed-optimizations-phase.cc", @@ -4820,6 +4862,7 @@ v8_source_set("v8_base_without_compiler") { "src/heap/cppgc-js/unified-heap-marking-state.cc", "src/heap/cppgc-js/unified-heap-marking-verifier.cc", "src/heap/cppgc-js/unified-heap-marking-visitor.cc", + "src/heap/ephemeron-remembered-set.cc", "src/heap/evacuation-verifier.cc", "src/heap/factory-base.cc", "src/heap/factory.cc", @@ -4836,7 +4879,6 @@ v8_source_set("v8_base_without_compiler") { "src/heap/incremental-marking-job.cc", "src/heap/incremental-marking.cc", "src/heap/index-generator.cc", - "src/heap/invalidated-slots.cc", "src/heap/large-spaces.cc", "src/heap/local-factory.cc", "src/heap/local-heap.cc", @@ -5156,7 +5198,6 @@ v8_source_set("v8_base_without_compiler") { "src/trap-handler/handler-inside.cc", "src/trap-handler/handler-outside.cc", "src/trap-handler/handler-shared.cc", - "src/wasm/assembler-buffer-cache.cc", "src/wasm/baseline/liftoff-assembler.cc", "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/canonical-types.cc", @@ -5556,13 +5597,6 @@ v8_source_set("v8_base_without_compiler") { ] deps += [ "src/third_party/vtune:v8_vtune_trace_mark" ] } - - if (v8_use_perfetto) { - sources += [ - "src/tracing/trace-categories.cc", - "src/tracing/trace-categories.h", - ] - } } group("v8_base") { @@ -5723,6 +5757,7 @@ v8_component("v8_libbase") { "src/base/cpu.h", "src/base/debug/stack_trace.cc", "src/base/debug/stack_trace.h", + "src/base/discriminated-union.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", "src/base/emulated-virtual-address-subspace.cc", @@ -5827,6 +5862,8 @@ v8_component("v8_libbase") { deps = [ ":v8_config_headers" ] + libs = [] + data = [] data_deps = [] @@ -5917,6 +5954,7 @@ v8_component("v8_libbase") { sources += [ "src/base/debug/stack_trace_win.cc", "src/base/platform/platform-win32.cc", + "src/base/platform/platform-win32.h", "src/base/win32-headers.h", ] @@ -6002,6 +6040,8 @@ v8_component("v8_libplatform") { "src/libplatform/default-job.h", "src/libplatform/default-platform.cc", "src/libplatform/default-platform.h", + "src/libplatform/default-thread-isolated-allocator.cc", + "src/libplatform/default-thread-isolated-allocator.h", "src/libplatform/default-worker-threads-task-runner.cc", "src/libplatform/default-worker-threads-task-runner.h", "src/libplatform/delayed-task-queue.cc", @@ -6362,6 +6402,13 @@ v8_source_set("cppgc_base") { } else { public_deps += [ ":v8_tracing" ] } + + if (v8_use_perfetto) { + sources += [ + "src/tracing/trace-categories.cc", + "src/tracing/trace-categories.h", + ] + } } if (v8_check_header_includes) { @@ -6732,7 +6779,6 @@ group("v8_fuzzers") { ":v8_simple_inspector_fuzzer", ":v8_simple_json_fuzzer", ":v8_simple_parser_fuzzer", - ":v8_simple_regexp_builtins_fuzzer", ":v8_simple_regexp_fuzzer", ] @@ -7053,23 +7099,6 @@ v8_source_set("parser_fuzzer") { v8_fuzzer("parser_fuzzer") { } -v8_source_set("regexp_builtins_fuzzer") { - sources = [ - "test/fuzzer/regexp-builtins.cc", - "test/fuzzer/regexp_builtins/mjsunit.js.h", - ] - - deps = [ ":fuzzer_support" ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("regexp_builtins_fuzzer") { -} - v8_source_set("regexp_fuzzer") { sources = [ "test/fuzzer/regexp.cc" ] diff --git a/src/chrome/app/chrome_main_delegate.cc b/src/chrome/app/chrome_main_delegate.cc index a60d3c73..122514b7 100644 --- a/src/chrome/app/chrome_main_delegate.cc +++ b/src/chrome/app/chrome_main_delegate.cc @@ -30,6 +30,7 @@ #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/task/sequence_manager/sequence_manager_impl.h" +#include "base/task/sequence_manager/thread_controller.h" #include "base/task/sequence_manager/thread_controller_power_monitor.h" #include "base/task/thread_pool/thread_pool_instance.h" #include "base/threading/hang_watcher.h" @@ -395,14 +396,14 @@ bool HandleCreditsSwitch(const base::CommandLine& command_line) { bool HandleVersionSwitches(const base::CommandLine& command_line) { #if !BUILDFLAG(IS_MAC) if (command_line.HasSwitch(switches::kProductVersion)) { - printf("%s\n", version_info::GetVersionNumber().c_str()); + printf("%s\n", version_info::GetVersionNumber().data()); return true; } #endif if (command_line.HasSwitch(switches::kVersion)) { - printf("%s %s %s\n", version_info::GetProductName().c_str(), - version_info::GetVersionNumber().c_str(), + printf("%s %s %s\n", version_info::GetProductName().data(), + version_info::GetVersionNumber().data(), chrome::GetChannelName(chrome::WithExtendedStable(true)).c_str()); return true; } @@ -957,6 +958,7 @@ void ChromeMainDelegate::CommonEarlyInitialization() { base::InitializeCpuReductionExperiment(); base::sequence_manager::internal::SequenceManagerImpl::InitializeFeatures(); + base::sequence_manager::internal::ThreadController::InitializeFeatures(); #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) base::MessagePumpLibevent::InitializeFeatures(); #elif BUILDFLAG(IS_MAC) diff --git a/src/chrome/common/chrome_constants.cc b/src/chrome/common/chrome_constants.cc index 76a3fd4c..cbc81a27 100644 --- a/src/chrome/common/chrome_constants.cc +++ b/src/chrome/common/chrome_constants.cc @@ -85,6 +85,14 @@ const base::FilePath::CharType kHelperProcessExecutablePath[] = #elif BUILDFLAG(IS_MAC) const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL(PRODUCT_STRING ".app/Contents/MacOS/" PRODUCT_STRING); +const base::FilePath::CharType + kGoogleChromeForTestingBrowserProcessExecutablePath[] = + FPL("Google Chrome for Testing.app/Contents/MacOS/Google Chrome for " + "Testing"); +const base::FilePath::CharType kGoogleChromeBrowserProcessExecutablePath[] = + FPL("Google Chrome.app/Contents/MacOS/Google Chrome"); +const base::FilePath::CharType kChromiumBrowserProcessExecutablePath[] = + FPL("Thorium.app/Contents/MacOS/Thorium"); const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL(PRODUCT_STRING " Helper.app/Contents/MacOS/" PRODUCT_STRING " Helper"); #elif BUILDFLAG(IS_ANDROID) @@ -119,6 +127,8 @@ const char kWebAppProfilePrefix[] = "web-app-profile-"; #endif // BUILDFLAG(IS_CHROMEOS_LACROS) // filenames +const base::FilePath::CharType kAccountPreferencesFilename[] = + FPL("AccountPreferences"); const base::FilePath::CharType kCacheDirname[] = FPL("Cache"); const base::FilePath::CharType kCookieFilename[] = FPL("Cookies"); const base::FilePath::CharType kCRLSetFilename[] = diff --git a/src/chrome/common/chrome_constants.h b/src/chrome/common/chrome_constants.h index ae41c702..67638c90 100644 --- a/src/chrome/common/chrome_constants.h +++ b/src/chrome/common/chrome_constants.h @@ -22,6 +22,11 @@ extern const base::FilePath::CharType kHelperProcessExecutableName[]; extern const base::FilePath::CharType kBrowserProcessExecutablePath[]; extern const base::FilePath::CharType kHelperProcessExecutablePath[]; #if BUILDFLAG(IS_MAC) +extern const base::FilePath::CharType + kGoogleChromeForTestingBrowserProcessExecutablePath[]; +extern const base::FilePath::CharType + kGoogleChromeBrowserProcessExecutablePath[]; +extern const base::FilePath::CharType kChromiumBrowserProcessExecutablePath[]; // NOTE: if you change the value of kFrameworkName, please don't forget to // update components/test/run_all_unittests.cc as well. // TODO(tfarina): Remove the comment above, when you fix components to use plist @@ -48,6 +53,7 @@ extern const char kWebAppProfilePrefix[]; #endif // BUILDFLAG(IS_CHROMEOS_LACROS) // filenames +extern const base::FilePath::CharType kAccountPreferencesFilename[]; extern const base::FilePath::CharType kCacheDirname[]; extern const base::FilePath::CharType kCookieFilename[]; extern const base::FilePath::CharType kCRLSetFilename[]; diff --git a/src/v8/BUILD.gn b/src/v8/BUILD.gn index 61e63150..5e5833ac 100644 --- a/src/v8/BUILD.gn +++ b/src/v8/BUILD.gn @@ -307,7 +307,7 @@ declare_args() { # Enable heap reservation of size 4GB. Only possible for 64bit archs. cppgc_enable_caged_heap = v8_current_cpu == "x64" || v8_current_cpu == "arm64" || - v8_current_cpu == "loong64" + v8_current_cpu == "loong64" || v8_current_cpu == "riscv64" # Enables additional heap verification phases and checks. cppgc_enable_verify_heap = "" @@ -662,7 +662,8 @@ assert(!v8_enable_unconditional_write_barriers || !v8_disable_write_barriers, "Write barriers can't be both enabled and disabled") assert(!cppgc_enable_caged_heap || v8_current_cpu == "x64" || - v8_current_cpu == "arm64" || v8_current_cpu == "loong64", + v8_current_cpu == "arm64" || v8_current_cpu == "loong64" || + v8_current_cpu == "riscv64", "CppGC caged heap requires 64bit platforms") assert(!cppgc_enable_young_generation || cppgc_enable_caged_heap, @@ -893,6 +894,7 @@ external_cppgc_defines = [ "CPPGC_SLIM_WRITE_BARRIER", "CPPGC_YOUNG_GENERATION", "CPPGC_POINTER_COMPRESSION", + "CPPGC_ENABLE_LARGER_CAGE", ] enabled_external_cppgc_defines = [] @@ -920,6 +922,9 @@ if (cppgc_enable_pointer_compression) { if (cppgc_enable_2gb_cage) { enabled_external_cppgc_defines += [ "CPPGC_2GB_CAGE" ] } +if (cppgc_enable_larger_cage) { + enabled_external_cppgc_defines += [ "CPPGC_ENABLE_LARGER_CAGE" ] +} if (cppgc_enable_slim_write_barrier) { enabled_external_cppgc_defines += [ "CPPGC_SLIM_WRITE_BARRIER" ] } @@ -1950,6 +1955,7 @@ torque_files = [ "src/objects/module.tq", "src/objects/name.tq", "src/objects/oddball.tq", + "src/objects/hole.tq", "src/objects/ordered-hash-table.tq", "src/objects/primitive-heap-object.tq", "src/objects/promise.tq", @@ -2412,65 +2418,94 @@ action("v8_dump_build_config") { outputs = [ "$root_out_dir/v8_build_config.json" ] is_DEBUG_defined = v8_enable_debugging_features || dcheck_always_on is_full_debug = v8_enable_debugging_features && !v8_optimized_debug + + arch = v8_target_cpu + if (v8_target_cpu == "x86") { + arch = "ia32" + } + + mips_arch_variant_var = "" + mips_use_msa_var = false + if (arch == "mips64" || arch == "mips64el") { + mips_arch_variant_var = mips_arch_variant + mips_use_msa_var = mips_use_msa + } + + js_shared_memory = + v8_enable_shared_ro_heap && (!v8_enable_pointer_compression || + v8_enable_pointer_compression_shared_cage) && + !v8_disable_write_barriers + simd_mips = mips_arch_variant_var == "r6" && mips_use_msa + simulator_run = target_cpu != v8_target_cpu + use_sanitizer = is_asan || is_cfi || is_msan || is_tsan || is_ubsan + + # This lists all build-time switches consumed by the test framework. All + # switches can be used automatically in the status files as is - no + # further files need to be modified. + # + # Naming conventions: Keep switch names short and remove unnecessary + # qualifiers. Drop v8_enable_, v8_, is_ where possible. + # Keep only qualifiers that disambiguate the switches from other things. + # Examples: has_turbofan disambiguates from the turbofan runtime variant, + # is_android disambiguates from the android keyword in status files, + # v8_cfi disambiguates from the global cfi flag. args = [ rebase_path("$root_out_dir/v8_build_config.json", root_build_dir), + "arch=\"$arch\"", + "asan=$is_asan", + "atomic_object_field_writes=$v8_enable_atomic_object_field_writes", + "cet_shadow_stack=$v8_enable_cet_shadow_stack", + "cfi=$is_cfi", + "clang=$is_clang", + "clang_coverage=$use_clang_coverage", + "code_comments=$v8_code_comments", + "component_build=$is_component_build", + "concurrent_marking=$v8_enable_concurrent_marking", + "conservative_stack_scanning=$v8_enable_conservative_stack_scanning", "current_cpu=\"$current_cpu\"", "dcheck_always_on=$dcheck_always_on", + "debug_code=$v8_enable_debug_code", + "DEBUG_defined=$is_DEBUG_defined", + "debugging_features=$v8_enable_debugging_features", + "dict_property_const_tracking=$v8_dict_property_const_tracking", + "direct_local=$v8_enable_direct_local", + "disassembler=$v8_enable_disassembler", + "full_debug=$is_full_debug", + "gdbjit=$v8_enable_gdbjit", + "has_jitless=$v8_jitless", + "has_maglev=$v8_enable_maglev", + "has_turbofan=$v8_enable_turbofan", + "has_webassembly=$v8_enable_webassembly", + "i18n=$v8_enable_i18n_support", "is_android=$is_android", - "is_asan=$is_asan", - "is_cfi=$is_cfi", - "is_clang=$is_clang", - "is_clang_coverage=$use_clang_coverage", - "is_component_build=$is_component_build", - "is_debug=$v8_enable_debugging_features", - "is_DEBUG_defined=$is_DEBUG_defined", - "is_full_debug=$is_full_debug", - "is_msan=$is_msan", - "is_tsan=$is_tsan", - "is_ubsan_vptr=$is_ubsan_vptr", + "is_ios=$is_ios", + "js_shared_memory=$js_shared_memory", + "lite_mode=$v8_enable_lite_mode", + "mips_arch_variant=\"$mips_arch_variant_var\"", + "mips_use_msa=$mips_use_msa_var", + "msan=$is_msan", + "official_build=$is_official_build", + "pointer_compression=$v8_enable_pointer_compression", + "pointer_compression_shared_cage=$v8_enable_pointer_compression_shared_cage", + "runtime_call_stats=$v8_enable_runtime_call_stats", + "sandbox=$v8_enable_sandbox", + "shared_ro_heap=$v8_enable_shared_ro_heap", + "simd_mips=$simd_mips", + "simulator_run=$simulator_run", + "single_generation=$v8_enable_single_generation", + "slow_dchecks=$v8_enable_slow_dchecks", "target_cpu=\"$target_cpu\"", - "v8_code_comments=$v8_code_comments", - "v8_control_flow_integrity=$v8_control_flow_integrity", + "third_party_heap=$v8_enable_third_party_heap", + "tsan=$is_tsan", + "ubsan=$is_ubsan", + "use_sanitizer=$use_sanitizer", + "v8_cfi=$v8_control_flow_integrity", "v8_current_cpu=\"$v8_current_cpu\"", - "v8_dict_property_const_tracking=$v8_dict_property_const_tracking", - "v8_disable_write_barriers=$v8_disable_write_barriers", - "v8_enable_atomic_object_field_writes=" + - "$v8_enable_atomic_object_field_writes", - "v8_enable_cet_shadow_stack=$v8_enable_cet_shadow_stack", - "v8_enable_concurrent_marking=$v8_enable_concurrent_marking", - "v8_enable_conservative_stack_scanning=" + - "$v8_enable_conservative_stack_scanning", - "v8_enable_debug_code=$v8_enable_debug_code", - "v8_enable_direct_local=$v8_enable_direct_local", - "v8_enable_disassembler=$v8_enable_disassembler", - "v8_enable_gdbjit=$v8_enable_gdbjit", - "v8_enable_i18n_support=$v8_enable_i18n_support", - "v8_enable_lite_mode=$v8_enable_lite_mode", - "v8_enable_maglev=$v8_enable_maglev", - "v8_enable_pointer_compression=$v8_enable_pointer_compression", - "v8_enable_pointer_compression_shared_cage=" + - "$v8_enable_pointer_compression_shared_cage", - "v8_enable_runtime_call_stats=$v8_enable_runtime_call_stats", - "v8_enable_sandbox=$v8_enable_sandbox", - "v8_enable_shared_ro_heap=$v8_enable_shared_ro_heap", - "v8_enable_single_generation=$v8_enable_single_generation", - "v8_enable_slow_dchecks=$v8_enable_slow_dchecks", - "v8_enable_third_party_heap=$v8_enable_third_party_heap", - "v8_enable_turbofan=$v8_enable_turbofan", - "v8_enable_verify_csa=$v8_enable_verify_csa", - "v8_enable_verify_heap=$v8_enable_verify_heap", - "v8_enable_verify_predictable=$v8_enable_verify_predictable", - "v8_enable_webassembly=$v8_enable_webassembly", - "v8_jitless=$v8_jitless", "v8_target_cpu=\"$v8_target_cpu\"", + "verify_csa=$v8_enable_verify_csa", + "verify_heap=$v8_enable_verify_heap", + "verify_predictable=$v8_enable_verify_predictable", ] - - if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { - args += [ - "mips_arch_variant=\"$mips_arch_variant\"", - "mips_use_msa=$mips_use_msa", - ] - } } ############################################################################### @@ -3080,6 +3115,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/operator-properties.h", "src/compiler/operator.h", "src/compiler/osr.h", + "src/compiler/pair-load-store-reducer.h", "src/compiler/per-isolate-compiler-cache.h", "src/compiler/persistent-map.h", "src/compiler/phase.h", @@ -3120,7 +3156,6 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/graph.h", "src/compiler/turboshaft/index.h", "src/compiler/turboshaft/late-escape-analysis-reducer.h", - "src/compiler/turboshaft/late-optimization-phase.h", "src/compiler/turboshaft/layered-hash-map.h", "src/compiler/turboshaft/machine-lowering-phase.h", "src/compiler/turboshaft/machine-lowering-reducer.h", @@ -3131,6 +3166,7 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/optimization-phase.h", "src/compiler/turboshaft/optimize-phase.h", "src/compiler/turboshaft/phase.h", + "src/compiler/turboshaft/pretenuring-propagation-reducer.h", "src/compiler/turboshaft/recreate-schedule-phase.h", "src/compiler/turboshaft/recreate-schedule.h", "src/compiler/turboshaft/reducer-traits.h", @@ -3140,8 +3176,9 @@ v8_header_set("v8_internal_headers") { "src/compiler/turboshaft/sidetable.h", "src/compiler/turboshaft/simplify-tf-loops.h", "src/compiler/turboshaft/snapshot-table.h", + "src/compiler/turboshaft/store-store-elimination-phase.h", + "src/compiler/turboshaft/store-store-elimination-reducer.h", "src/compiler/turboshaft/structural-optimization-reducer.h", - "src/compiler/turboshaft/tag-untag-lowering-phase.h", "src/compiler/turboshaft/tag-untag-lowering-reducer.h", "src/compiler/turboshaft/tracing.h", "src/compiler/turboshaft/type-assertions-phase.h", @@ -3274,6 +3311,7 @@ v8_header_set("v8_internal_headers") { "src/heap/cppgc-js/unified-heap-marking-visitor.h", "src/heap/cppgc-js/wrappable-info-inl.h", "src/heap/cppgc-js/wrappable-info.h", + "src/heap/ephemeron-remembered-set.h", "src/heap/evacuation-allocator-inl.h", "src/heap/evacuation-allocator.h", "src/heap/evacuation-verifier-inl.h", @@ -3301,8 +3339,6 @@ v8_header_set("v8_internal_headers") { "src/heap/incremental-marking-job.h", "src/heap/incremental-marking.h", "src/heap/index-generator.h", - "src/heap/invalidated-slots-inl.h", - "src/heap/invalidated-slots.h", "src/heap/large-spaces.h", "src/heap/linear-allocation-area.h", "src/heap/list.h", @@ -3475,6 +3511,8 @@ v8_header_set("v8_internal_headers") { "src/objects/heap-number.h", "src/objects/heap-object-inl.h", "src/objects/heap-object.h", + "src/objects/hole-inl.h", + "src/objects/hole.h", "src/objects/instance-type-inl.h", "src/objects/instance-type.h", "src/objects/internal-index.h", @@ -3693,6 +3731,8 @@ v8_header_set("v8_internal_headers") { "src/runtime/runtime.h", "src/sandbox/bounded-size-inl.h", "src/sandbox/bounded-size.h", + "src/sandbox/external-entity-table-inl.h", + "src/sandbox/external-entity-table.h", "src/sandbox/external-pointer-inl.h", "src/sandbox/external-pointer-table-inl.h", "src/sandbox/external-pointer-table.h", @@ -3829,6 +3869,7 @@ v8_header_set("v8_internal_headers") { "src/asmjs/asm-scanner.h", "src/asmjs/asm-types.h", "src/compiler/int64-lowering.h", + "src/compiler/wasm-address-reassociation.h", "src/compiler/wasm-call-descriptors.h", "src/compiler/wasm-compiler-definitions.h", "src/compiler/wasm-compiler.h", @@ -3846,7 +3887,6 @@ v8_header_set("v8_internal_headers") { "src/third_party/utf8-decoder/generalized-utf8-decoder.h", "src/trap-handler/trap-handler-internal.h", "src/trap-handler/trap-handler.h", - "src/wasm/assembler-buffer-cache.h", "src/wasm/baseline/liftoff-assembler-defs.h", "src/wasm/baseline/liftoff-assembler.h", "src/wasm/baseline/liftoff-compiler.h", @@ -4370,6 +4410,7 @@ v8_compiler_sources = [ "src/compiler/operator-properties.cc", "src/compiler/operator.cc", "src/compiler/osr.cc", + "src/compiler/pair-load-store-reducer.cc", "src/compiler/pipeline-statistics.cc", "src/compiler/pipeline.cc", "src/compiler/property-access-builder.cc", @@ -4486,6 +4527,7 @@ if (v8_current_cpu == "x86") { if (v8_enable_webassembly) { v8_compiler_sources += [ "src/compiler/int64-lowering.cc", + "src/compiler/wasm-address-reassociation.cc", "src/compiler/wasm-call-descriptors.cc", "src/compiler/wasm-compiler.cc", "src/compiler/wasm-escape-analysis.cc", @@ -4585,18 +4627,18 @@ v8_source_set("v8_turboshaft") { "src/compiler/turboshaft/graph-visualizer.cc", "src/compiler/turboshaft/graph.cc", "src/compiler/turboshaft/late-escape-analysis-reducer.cc", - "src/compiler/turboshaft/late-optimization-phase.cc", "src/compiler/turboshaft/machine-lowering-phase.cc", "src/compiler/turboshaft/memory-optimization-reducer.cc", "src/compiler/turboshaft/operations.cc", "src/compiler/turboshaft/optimization-phase.cc", "src/compiler/turboshaft/optimize-phase.cc", "src/compiler/turboshaft/phase.cc", + "src/compiler/turboshaft/pretenuring-propagation-reducer.cc", "src/compiler/turboshaft/recreate-schedule-phase.cc", "src/compiler/turboshaft/recreate-schedule.cc", "src/compiler/turboshaft/representations.cc", "src/compiler/turboshaft/simplify-tf-loops.cc", - "src/compiler/turboshaft/tag-untag-lowering-phase.cc", + "src/compiler/turboshaft/store-store-elimination-phase.cc", "src/compiler/turboshaft/type-assertions-phase.cc", "src/compiler/turboshaft/type-parser.cc", "src/compiler/turboshaft/typed-optimizations-phase.cc", @@ -4820,6 +4862,7 @@ v8_source_set("v8_base_without_compiler") { "src/heap/cppgc-js/unified-heap-marking-state.cc", "src/heap/cppgc-js/unified-heap-marking-verifier.cc", "src/heap/cppgc-js/unified-heap-marking-visitor.cc", + "src/heap/ephemeron-remembered-set.cc", "src/heap/evacuation-verifier.cc", "src/heap/factory-base.cc", "src/heap/factory.cc", @@ -4836,7 +4879,6 @@ v8_source_set("v8_base_without_compiler") { "src/heap/incremental-marking-job.cc", "src/heap/incremental-marking.cc", "src/heap/index-generator.cc", - "src/heap/invalidated-slots.cc", "src/heap/large-spaces.cc", "src/heap/local-factory.cc", "src/heap/local-heap.cc", @@ -5156,7 +5198,6 @@ v8_source_set("v8_base_without_compiler") { "src/trap-handler/handler-inside.cc", "src/trap-handler/handler-outside.cc", "src/trap-handler/handler-shared.cc", - "src/wasm/assembler-buffer-cache.cc", "src/wasm/baseline/liftoff-assembler.cc", "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/canonical-types.cc", @@ -5556,13 +5597,6 @@ v8_source_set("v8_base_without_compiler") { ] deps += [ "src/third_party/vtune:v8_vtune_trace_mark" ] } - - if (v8_use_perfetto) { - sources += [ - "src/tracing/trace-categories.cc", - "src/tracing/trace-categories.h", - ] - } } group("v8_base") { @@ -5723,6 +5757,7 @@ v8_component("v8_libbase") { "src/base/cpu.h", "src/base/debug/stack_trace.cc", "src/base/debug/stack_trace.h", + "src/base/discriminated-union.h", "src/base/division-by-constant.cc", "src/base/division-by-constant.h", "src/base/emulated-virtual-address-subspace.cc", @@ -5827,6 +5862,8 @@ v8_component("v8_libbase") { deps = [ ":v8_config_headers" ] + libs = [] + data = [] data_deps = [] @@ -5917,6 +5954,7 @@ v8_component("v8_libbase") { sources += [ "src/base/debug/stack_trace_win.cc", "src/base/platform/platform-win32.cc", + "src/base/platform/platform-win32.h", "src/base/win32-headers.h", ] @@ -6002,6 +6040,8 @@ v8_component("v8_libplatform") { "src/libplatform/default-job.h", "src/libplatform/default-platform.cc", "src/libplatform/default-platform.h", + "src/libplatform/default-thread-isolated-allocator.cc", + "src/libplatform/default-thread-isolated-allocator.h", "src/libplatform/default-worker-threads-task-runner.cc", "src/libplatform/default-worker-threads-task-runner.h", "src/libplatform/delayed-task-queue.cc", @@ -6362,6 +6402,13 @@ v8_source_set("cppgc_base") { } else { public_deps += [ ":v8_tracing" ] } + + if (v8_use_perfetto) { + sources += [ + "src/tracing/trace-categories.cc", + "src/tracing/trace-categories.h", + ] + } } if (v8_check_header_includes) { @@ -6732,7 +6779,6 @@ group("v8_fuzzers") { ":v8_simple_inspector_fuzzer", ":v8_simple_json_fuzzer", ":v8_simple_parser_fuzzer", - ":v8_simple_regexp_builtins_fuzzer", ":v8_simple_regexp_fuzzer", ] @@ -7053,23 +7099,6 @@ v8_source_set("parser_fuzzer") { v8_fuzzer("parser_fuzzer") { } -v8_source_set("regexp_builtins_fuzzer") { - sources = [ - "test/fuzzer/regexp-builtins.cc", - "test/fuzzer/regexp_builtins/mjsunit.js.h", - ] - - deps = [ ":fuzzer_support" ] - - configs = [ - ":external_config", - ":internal_config_base", - ] -} - -v8_fuzzer("regexp_builtins_fuzzer") { -} - v8_source_set("regexp_fuzzer") { sources = [ "test/fuzzer/regexp.cc" ] diff --git a/thorium-libjxl b/thorium-libjxl index 958588f4..23f70122 160000 --- a/thorium-libjxl +++ b/thorium-libjxl @@ -1 +1 @@ -Subproject commit 958588f44f2dc145c442d91682382987079badc5 +Subproject commit 23f701225d4a0b5073567575b9fa2e3656ea662c