2014-05-05 11:06:26 +00:00
|
|
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
|
|
# found in the LICENSE file.
|
|
|
|
|
2015-03-12 15:39:41 +00:00
|
|
|
import("//build/config/android/config.gni")
|
|
|
|
import("//build/config/arm.gni")
|
2016-06-07 13:44:01 +00:00
|
|
|
import("//build/config/dcheck_always_on.gni")
|
2017-05-12 01:35:09 +00:00
|
|
|
import("//build/config/host_byteorder.gni")
|
2017-08-09 08:11:21 +00:00
|
|
|
import("//build/config/jumbo.gni")
|
2015-03-12 15:39:41 +00:00
|
|
|
import("//build/config/mips.gni")
|
2015-09-07 15:22:42 +00:00
|
|
|
import("//build/config/sanitizers/sanitizers.gni")
|
2018-03-20 10:16:14 +00:00
|
|
|
import("//build_overrides/build.gni")
|
2015-03-12 15:39:41 +00:00
|
|
|
|
2015-11-05 17:28:57 +00:00
|
|
|
if (is_android) {
|
|
|
|
import("//build/config/android/rules.gni")
|
|
|
|
}
|
|
|
|
|
2016-05-24 08:54:42 +00:00
|
|
|
import("gni/v8.gni")
|
2015-09-22 02:28:32 +00:00
|
|
|
import("snapshot_toolchain.gni")
|
|
|
|
|
2018-10-17 14:19:56 +00:00
|
|
|
# Specifies if the target build is a simulator build. Comparing target cpu
|
|
|
|
# with v8 target cpu to not affect simulator builds for making cross-compile
|
|
|
|
# snapshots.
|
|
|
|
is_target_simulator = (target_cpu != v8_target_cpu && !v8_multi_arch_build) ||
|
|
|
|
(current_cpu != v8_current_cpu && v8_multi_arch_build)
|
|
|
|
|
2018-11-22 10:25:50 +00:00
|
|
|
# For faster Windows builds. See https://crbug.com/v8/8475.
|
|
|
|
emit_builtins_as_inline_asm = is_win && is_clang
|
|
|
|
|
2015-11-11 01:09:06 +00:00
|
|
|
declare_args() {
|
2016-08-02 15:35:24 +00:00
|
|
|
# Print to stdout on Android.
|
|
|
|
v8_android_log_stdout = false
|
|
|
|
|
2018-06-11 11:49:00 +00:00
|
|
|
# Dynamically set an additional dependency from v8/custom_deps.
|
|
|
|
v8_custom_deps = ""
|
|
|
|
|
2018-04-06 10:24:41 +00:00
|
|
|
# Turns on all V8 debug features. Enables running V8 in a pseudo debug mode
|
|
|
|
# within a release Chrome.
|
|
|
|
v8_enable_debugging_features = is_debug
|
|
|
|
|
2017-03-01 12:36:40 +00:00
|
|
|
# Sets -DV8_ENABLE_FUTURE.
|
|
|
|
v8_enable_future = false
|
|
|
|
|
2018-10-15 13:10:51 +00:00
|
|
|
# Lite mode disables a number of performance optimizations to reduce memory
|
|
|
|
# at the cost of performance.
|
|
|
|
# Sets --DV8_LITE_MODE.
|
|
|
|
v8_enable_lite_mode = false
|
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# Sets -DVERIFY_HEAP.
|
2017-01-13 17:28:51 +00:00
|
|
|
v8_enable_verify_heap = ""
|
2016-04-08 14:16:47 +00:00
|
|
|
|
2017-01-05 15:01:30 +00:00
|
|
|
# Sets -DVERIFY_PREDICTABLE
|
|
|
|
v8_enable_verify_predictable = false
|
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# Enable compiler warnings when using V8_DEPRECATED apis.
|
2018-07-26 09:10:09 +00:00
|
|
|
v8_deprecation_warnings = true
|
2016-04-08 14:16:47 +00:00
|
|
|
|
|
|
|
# Enable compiler warnings when using V8_DEPRECATE_SOON apis.
|
2018-07-25 04:49:16 +00:00
|
|
|
v8_imminent_deprecation_warnings = true
|
2016-04-08 14:16:47 +00:00
|
|
|
|
2016-06-30 11:24:37 +00:00
|
|
|
# Embeds the given script into the snapshot.
|
|
|
|
v8_embed_script = ""
|
|
|
|
|
2017-09-28 14:05:22 +00:00
|
|
|
# Allows the embedder to add a custom suffix to the version string.
|
|
|
|
v8_embedder_string = ""
|
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# Sets -dENABLE_DISASSEMBLER.
|
2016-07-26 12:00:17 +00:00
|
|
|
v8_enable_disassembler = ""
|
2016-04-08 14:16:47 +00:00
|
|
|
|
2017-05-23 17:54:12 +00:00
|
|
|
# Sets the number of internal fields on promise objects.
|
|
|
|
v8_promise_internal_field_count = 0
|
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# Sets -dENABLE_GDB_JIT_INTERFACE.
|
2016-07-15 14:40:51 +00:00
|
|
|
v8_enable_gdbjit = ""
|
2016-04-08 14:16:47 +00:00
|
|
|
|
2017-02-13 02:54:05 +00:00
|
|
|
# Sets -dENABLE_VTUNE_JIT_INTERFACE.
|
|
|
|
v8_enable_vtunejit = false
|
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# Sets -dENABLE_HANDLE_ZAPPING.
|
|
|
|
v8_enable_handle_zapping = true
|
|
|
|
|
2016-06-07 13:44:01 +00:00
|
|
|
# Enable slow dchecks.
|
|
|
|
v8_enable_slow_dchecks = false
|
|
|
|
|
2017-08-24 13:14:44 +00:00
|
|
|
# Enable fast mksnapshot runs.
|
|
|
|
v8_enable_fast_mksnapshot = false
|
|
|
|
|
2018-02-16 13:14:43 +00:00
|
|
|
# Enable embedded builtins.
|
2018-11-26 18:38:04 +00:00
|
|
|
v8_enable_embedded_builtins = true
|
2018-02-16 13:14:43 +00:00
|
|
|
|
Reland "V8 x64 backend doesn't emit ABI compliant stack frames"
This is a reland of 3cda21de77d098a612eadf44d504b188a599c5f0
Original change's description:
> V8 x64 backend doesn't emit ABI compliant stack frames
>
> On 64 bit Windows, the OS stack walking does not work because the V8 x64
> backend doesn't emit unwinding info and also because it doesn't emit ABI
> compliant stack frames. See
> https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
> for more details.
>
> This problem can be fixed by observing that V8 frames usually all have the same
> prolog and epilog:
>
> push rbp,
> mov rbp, rsp
> ...
> pop rbp
> ret N
>
> and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
> should walk through V8 frames. Furthermore, since V8 Code objects are all
> allocated in the same code-range for an Isolate, it is possible to register a
> single PDATA/XDATA entry to cover stack walking for all the code generated
> inside that code-range.
>
> This PR contains changes required to enable stack walking on Win64:
>
> EmbeddedFileWriter now adds assembler directives to the builtins
> snapshot source file (embedded.cc) to emit additional entries in the .pdata and
> in the .xdata section of the V8 executable. This takes care of stack walking
> for embedded builtins. (The case of non-embedded builtins is not supported).
> The x64 Assembler has been modified to collect the information required to emit
> this unwind info for builtins.
>
> Stack walking for jitted code is handled is Isolate.cpp, by registering
> dynamically PDATA/XDATA for the whole code-range address space every time a new
> Isolate is initialized, and by unregistering them when the Isolate is
> destroyed.
>
> Stack walking for WASM jitted code is handled is the same way in
> wasm::NativeModule (wasm/wasm-code-manager.cpp).
>
> It is important to note that Crashpad and Breakpad are already registering
> PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
> builtins). Since it is not possible to register multiple PDATA entries for the
> same address range, a new function is added to the V8 API:
> SetUnhandledExceptionCallback() can be used by an embedder to register its own
> unhandled exception handler for exceptions that arise in v8-generated code.
> V8 embedders should be modified accordingly (code for this is in a separate PR
> in the Chromium repository:
> https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
>
> All these changes are experimental, behind:
>
> the 'v8_win64_unwinding_info' build flag, and
> the '--win64-unwinding-info' runtime flag.
>
> Bug: v8:3598
> Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Paolo Severini <paolosev@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#60330}
Bug: v8:3598
Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#60581}
2019-04-01 21:43:23 +00:00
|
|
|
# Enable the registration of unwinding info for Windows/x64.
|
2019-04-24 22:01:00 +00:00
|
|
|
v8_win64_unwinding_info = true
|
Reland "V8 x64 backend doesn't emit ABI compliant stack frames"
This is a reland of 3cda21de77d098a612eadf44d504b188a599c5f0
Original change's description:
> V8 x64 backend doesn't emit ABI compliant stack frames
>
> On 64 bit Windows, the OS stack walking does not work because the V8 x64
> backend doesn't emit unwinding info and also because it doesn't emit ABI
> compliant stack frames. See
> https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
> for more details.
>
> This problem can be fixed by observing that V8 frames usually all have the same
> prolog and epilog:
>
> push rbp,
> mov rbp, rsp
> ...
> pop rbp
> ret N
>
> and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
> should walk through V8 frames. Furthermore, since V8 Code objects are all
> allocated in the same code-range for an Isolate, it is possible to register a
> single PDATA/XDATA entry to cover stack walking for all the code generated
> inside that code-range.
>
> This PR contains changes required to enable stack walking on Win64:
>
> EmbeddedFileWriter now adds assembler directives to the builtins
> snapshot source file (embedded.cc) to emit additional entries in the .pdata and
> in the .xdata section of the V8 executable. This takes care of stack walking
> for embedded builtins. (The case of non-embedded builtins is not supported).
> The x64 Assembler has been modified to collect the information required to emit
> this unwind info for builtins.
>
> Stack walking for jitted code is handled is Isolate.cpp, by registering
> dynamically PDATA/XDATA for the whole code-range address space every time a new
> Isolate is initialized, and by unregistering them when the Isolate is
> destroyed.
>
> Stack walking for WASM jitted code is handled is the same way in
> wasm::NativeModule (wasm/wasm-code-manager.cpp).
>
> It is important to note that Crashpad and Breakpad are already registering
> PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
> builtins). Since it is not possible to register multiple PDATA entries for the
> same address range, a new function is added to the V8 API:
> SetUnhandledExceptionCallback() can be used by an embedder to register its own
> unhandled exception handler for exceptions that arise in v8-generated code.
> V8 embedders should be modified accordingly (code for this is in a separate PR
> in the Chromium repository:
> https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
>
> All these changes are experimental, behind:
>
> the 'v8_win64_unwinding_info' build flag, and
> the '--win64-unwinding-info' runtime flag.
>
> Bug: v8:3598
> Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Paolo Severini <paolosev@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#60330}
Bug: v8:3598
Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#60581}
2019-04-01 21:43:23 +00:00
|
|
|
|
2018-12-13 19:30:56 +00:00
|
|
|
# Enable code comments for builtins in the snapshot (impacts performance).
|
|
|
|
v8_enable_snapshot_code_comments = false
|
|
|
|
|
2019-03-28 12:37:29 +00:00
|
|
|
# Enable native counters from the snapshot (impacts performance, sets
|
|
|
|
# -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS).
|
|
|
|
# This option will generate extra code in the snapshot to increment counters,
|
|
|
|
# as per the --native-code-counters flag.
|
|
|
|
v8_enable_snapshot_native_code_counters = ""
|
|
|
|
|
2017-01-27 11:32:27 +00:00
|
|
|
# Enable code-generation-time checking of types in the CodeStubAssembler.
|
|
|
|
v8_enable_verify_csa = false
|
|
|
|
|
2018-06-05 10:45:41 +00:00
|
|
|
# Enable pointer compression (sets -dV8_COMPRESS_POINTERS).
|
2019-04-03 17:01:14 +00:00
|
|
|
v8_enable_pointer_compression = false
|
2019-02-01 09:17:31 +00:00
|
|
|
v8_enable_31bit_smis_on_64bit_arch = false
|
2018-06-05 10:45:41 +00:00
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# Sets -dOBJECT_PRINT.
|
2017-01-13 17:28:51 +00:00
|
|
|
v8_enable_object_print = ""
|
|
|
|
|
2017-05-16 15:52:10 +00:00
|
|
|
# Sets -dV8_TRACE_MAPS.
|
2017-01-13 17:28:51 +00:00
|
|
|
v8_enable_trace_maps = ""
|
|
|
|
|
|
|
|
# Sets -dV8_ENABLE_CHECKS.
|
|
|
|
v8_enable_v8_checks = ""
|
2016-04-08 14:16:47 +00:00
|
|
|
|
2017-05-16 15:52:10 +00:00
|
|
|
# Sets -dV8_TRACE_IGNITION.
|
|
|
|
v8_enable_trace_ignition = false
|
2017-04-11 15:32:32 +00:00
|
|
|
|
2017-10-23 11:23:45 +00:00
|
|
|
# Sets -dV8_TRACE_FEEDBACK_UPDATES.
|
|
|
|
v8_enable_trace_feedback_updates = false
|
|
|
|
|
2017-05-17 15:22:38 +00:00
|
|
|
# Sets -dV8_CONCURRENT_MARKING
|
2017-11-07 12:12:45 +00:00
|
|
|
v8_enable_concurrent_marking = true
|
2017-05-17 15:22:38 +00:00
|
|
|
|
2018-01-17 13:30:12 +00:00
|
|
|
# Enables various testing features.
|
|
|
|
v8_enable_test_features = ""
|
2017-11-30 09:20:19 +00:00
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# With post mortem support enabled, metadata is embedded into libv8 that
|
|
|
|
# describes various parameters of the VM for use by debuggers. See
|
|
|
|
# tools/gen-postmortem-metadata.py for details.
|
|
|
|
v8_postmortem_support = false
|
2016-05-02 08:10:32 +00:00
|
|
|
|
2019-01-09 14:38:22 +00:00
|
|
|
# Use Siphash as added protection against hash flooding attacks.
|
|
|
|
v8_use_siphash = false
|
|
|
|
|
2019-03-28 08:52:41 +00:00
|
|
|
# Use Perfetto (https://perfetto.dev) as the default TracingController. Not
|
|
|
|
# currently implemented.
|
|
|
|
v8_use_perfetto = false
|
|
|
|
|
2016-09-14 11:18:20 +00:00
|
|
|
# Switches off inlining in V8.
|
|
|
|
v8_no_inline = false
|
|
|
|
|
2016-11-15 14:39:59 +00:00
|
|
|
# Override OS page size when generating snapshot
|
|
|
|
v8_os_page_size = "0"
|
|
|
|
|
2016-05-02 08:10:32 +00:00
|
|
|
# Similar to vfp but on MIPS.
|
|
|
|
v8_can_use_fpu_instructions = true
|
|
|
|
|
|
|
|
# Similar to the ARM hard float ABI but on MIPS.
|
|
|
|
v8_use_mips_abi_hardfloat = true
|
2015-11-11 01:09:06 +00:00
|
|
|
|
2017-09-14 12:09:54 +00:00
|
|
|
# Controls the threshold for on-heap/off-heap Typed Arrays.
|
|
|
|
v8_typed_array_max_size_in_heap = 64
|
|
|
|
|
2017-01-25 00:20:56 +00:00
|
|
|
# List of extra files to snapshot. They will be snapshotted in order so
|
|
|
|
# if files export symbols used by later files, they should go first.
|
|
|
|
#
|
|
|
|
# This default is used by cctests. Projects using V8 will want to override.
|
2017-01-26 20:18:58 +00:00
|
|
|
v8_extra_library_files = [ "//test/cctest/test-extra.js" ]
|
2017-01-25 00:20:56 +00:00
|
|
|
|
2017-07-18 15:55:06 +00:00
|
|
|
v8_enable_gdbjit =
|
|
|
|
((v8_current_cpu == "x86" || v8_current_cpu == "x64") &&
|
|
|
|
(is_linux || is_mac)) || (v8_current_cpu == "ppc64" && is_linux)
|
2017-06-02 11:52:40 +00:00
|
|
|
|
|
|
|
# Temporary flag to allow embedders to update their microtasks scopes
|
|
|
|
# while rolling in a new version of V8.
|
|
|
|
v8_check_microtasks_scopes_consistency = ""
|
2017-11-27 09:36:01 +00:00
|
|
|
|
2018-01-05 10:05:05 +00:00
|
|
|
# Enable mitigations for executing untrusted code.
|
2018-10-17 14:19:56 +00:00
|
|
|
# Disabled by default on ia32 due to conflicting requirements with embedded
|
|
|
|
# builtins. Enabled by default on Android since it doesn't support
|
|
|
|
# site-isolation in Chrome and on simulator builds which test code generation
|
|
|
|
# on these platforms.
|
|
|
|
v8_untrusted_code_mitigations =
|
|
|
|
v8_current_cpu != "x86" && (is_android || is_target_simulator)
|
2018-04-09 15:40:52 +00:00
|
|
|
|
|
|
|
# Enable minor mark compact.
|
|
|
|
v8_enable_minor_mc = true
|
2018-07-20 13:13:31 +00:00
|
|
|
|
|
|
|
# Check that each header can be included in isolation (requires also
|
|
|
|
# setting the "check_v8_header_includes" gclient variable to run a
|
|
|
|
# specific hook).
|
|
|
|
v8_check_header_includes = false
|
2019-03-14 13:43:30 +00:00
|
|
|
|
|
|
|
# Enable sharing read-only space across isolates.
|
|
|
|
v8_enable_shared_ro_heap = false
|
2018-09-12 11:55:04 +00:00
|
|
|
}
|
|
|
|
|
2019-02-13 17:06:03 +00:00
|
|
|
# We reuse the snapshot toolchain for building torque and other generators to
|
|
|
|
# avoid building v8_libbase on the host more than once. On mips with big endian,
|
|
|
|
# the snapshot toolchain is the target toolchain and, hence, can't be used.
|
2018-09-12 11:55:04 +00:00
|
|
|
v8_generator_toolchain = v8_snapshot_toolchain
|
|
|
|
if (host_cpu == "x64" &&
|
|
|
|
(v8_current_cpu == "mips" || v8_current_cpu == "mips64")) {
|
|
|
|
v8_generator_toolchain = "//build/toolchain/linux:clang_x64"
|
2016-07-15 14:40:51 +00:00
|
|
|
}
|
|
|
|
|
2016-07-26 12:00:17 +00:00
|
|
|
# Derived defaults.
|
2017-01-13 17:28:51 +00:00
|
|
|
if (v8_enable_verify_heap == "") {
|
2018-04-06 10:24:41 +00:00
|
|
|
v8_enable_verify_heap = v8_enable_debugging_features
|
2017-01-13 17:28:51 +00:00
|
|
|
}
|
|
|
|
if (v8_enable_object_print == "") {
|
2018-04-06 10:24:41 +00:00
|
|
|
v8_enable_object_print = v8_enable_debugging_features
|
2016-07-26 12:00:17 +00:00
|
|
|
}
|
|
|
|
if (v8_enable_disassembler == "") {
|
2018-04-06 10:24:41 +00:00
|
|
|
v8_enable_disassembler = v8_enable_debugging_features
|
2017-01-13 17:28:51 +00:00
|
|
|
}
|
|
|
|
if (v8_enable_trace_maps == "") {
|
2018-04-06 10:24:41 +00:00
|
|
|
v8_enable_trace_maps = v8_enable_debugging_features
|
2017-01-13 17:28:51 +00:00
|
|
|
}
|
2018-01-17 13:30:12 +00:00
|
|
|
if (v8_enable_test_features == "") {
|
2018-04-06 10:24:41 +00:00
|
|
|
v8_enable_test_features = v8_enable_debugging_features || dcheck_always_on
|
2017-11-30 09:20:19 +00:00
|
|
|
}
|
2017-01-13 17:28:51 +00:00
|
|
|
if (v8_enable_v8_checks == "") {
|
2018-04-06 10:24:41 +00:00
|
|
|
v8_enable_v8_checks = v8_enable_debugging_features
|
2016-07-26 12:00:17 +00:00
|
|
|
}
|
2017-06-02 11:52:40 +00:00
|
|
|
if (v8_check_microtasks_scopes_consistency == "") {
|
2018-04-06 10:24:41 +00:00
|
|
|
v8_check_microtasks_scopes_consistency =
|
|
|
|
v8_enable_debugging_features || dcheck_always_on
|
2017-06-02 11:52:40 +00:00
|
|
|
}
|
2019-03-28 12:37:29 +00:00
|
|
|
if (v8_enable_snapshot_native_code_counters == "") {
|
|
|
|
v8_enable_snapshot_native_code_counters = v8_enable_debugging_features
|
|
|
|
}
|
2016-07-26 12:00:17 +00:00
|
|
|
|
2018-11-15 09:00:41 +00:00
|
|
|
assert(v8_current_cpu != "x86" || !v8_untrusted_code_mitigations,
|
|
|
|
"Untrusted code mitigations are unsupported on ia32")
|
|
|
|
|
2018-12-21 12:19:11 +00:00
|
|
|
assert(!v8_enable_lite_mode || v8_enable_embedded_builtins,
|
|
|
|
"Lite mode requires embedded builtins")
|
|
|
|
assert(!v8_enable_lite_mode || v8_use_snapshot,
|
|
|
|
"Lite mode requires a snapshot build")
|
2018-06-13 12:07:37 +00:00
|
|
|
|
2019-03-14 13:43:30 +00:00
|
|
|
assert(v8_use_snapshot || !v8_enable_shared_ro_heap,
|
|
|
|
"Nosnapshot builds are not supported with shared read-only heap enabled")
|
|
|
|
|
2014-06-03 06:50:46 +00:00
|
|
|
v8_random_seed = "314159265"
|
2016-05-06 07:30:52 +00:00
|
|
|
v8_toolset_for_shell = "host"
|
2014-05-05 11:06:26 +00:00
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# Configurations
|
|
|
|
#
|
2019-02-11 16:11:08 +00:00
|
|
|
|
|
|
|
config("internal_config_base") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-05-05 11:06:26 +00:00
|
|
|
|
2018-04-16 09:24:22 +00:00
|
|
|
include_dirs = [
|
|
|
|
".",
|
|
|
|
"$target_gen_dir",
|
|
|
|
]
|
2014-06-05 08:45:24 +00:00
|
|
|
}
|
|
|
|
|
2019-02-11 16:11:08 +00:00
|
|
|
config("internal_config") {
|
|
|
|
defines = []
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-07-03 08:50:52 +00:00
|
|
|
|
2019-02-11 16:11:08 +00:00
|
|
|
configs = [
|
|
|
|
"//build/config/compiler:wexit_time_destructors",
|
|
|
|
":internal_config_base",
|
|
|
|
":v8_header_features",
|
2018-04-16 09:24:22 +00:00
|
|
|
]
|
2019-02-11 16:11:08 +00:00
|
|
|
|
|
|
|
if (is_component_build) {
|
|
|
|
defines += [ "BUILDING_V8_SHARED" ]
|
|
|
|
}
|
2014-07-03 08:50:52 +00:00
|
|
|
}
|
|
|
|
|
2016-02-29 11:02:52 +00:00
|
|
|
# This config should be applied to code using the libplatform.
|
|
|
|
config("libplatform_config") {
|
|
|
|
include_dirs = [ "include" ]
|
2016-10-10 08:51:48 +00:00
|
|
|
if (is_component_build) {
|
|
|
|
defines = [ "USING_V8_PLATFORM_SHARED" ]
|
|
|
|
}
|
2016-02-29 11:02:52 +00:00
|
|
|
}
|
|
|
|
|
2016-10-07 07:56:43 +00:00
|
|
|
# This config should be applied to code using the libbase.
|
|
|
|
config("libbase_config") {
|
|
|
|
if (is_component_build) {
|
|
|
|
defines = [ "USING_V8_BASE_SHARED" ]
|
|
|
|
}
|
|
|
|
libs = []
|
|
|
|
if (is_android && current_toolchain != host_toolchain) {
|
|
|
|
libs += [ "log" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-05-26 02:13:58 +00:00
|
|
|
# This config should be applied to code using the libsampler.
|
|
|
|
config("libsampler_config") {
|
|
|
|
include_dirs = [ "include" ]
|
|
|
|
}
|
|
|
|
|
2014-06-05 08:45:24 +00:00
|
|
|
# This config should only be applied to code using V8 and not any V8 code
|
|
|
|
# itself.
|
|
|
|
config("external_config") {
|
2017-09-08 10:24:58 +00:00
|
|
|
defines = []
|
2019-02-11 16:11:08 +00:00
|
|
|
configs = [ ":v8_header_features" ]
|
2014-06-05 08:45:24 +00:00
|
|
|
if (is_component_build) {
|
2017-09-08 10:24:58 +00:00
|
|
|
defines += [ "USING_V8_SHARED" ]
|
|
|
|
}
|
2017-03-31 08:24:34 +00:00
|
|
|
include_dirs = [
|
|
|
|
"include",
|
|
|
|
"$target_gen_dir/include",
|
|
|
|
]
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
2015-10-21 00:37:28 +00:00
|
|
|
# This config should only be applied to code that needs to be explicitly
|
|
|
|
# aware of whether we are using startup data or not.
|
|
|
|
config("external_startup_data") {
|
|
|
|
if (v8_use_external_startup_data) {
|
|
|
|
defines = [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-02-11 16:11:08 +00:00
|
|
|
# Put defines that are used in public headers here; public headers are
|
|
|
|
# defined in "v8_headers" and are included by embedders of V8.
|
|
|
|
config("v8_header_features") {
|
|
|
|
visibility = [ ":*" ]
|
|
|
|
|
|
|
|
defines = []
|
|
|
|
|
|
|
|
if (v8_enable_v8_checks) {
|
|
|
|
defines += [ "V8_ENABLE_CHECKS" ] # Used in "include/v8.h".
|
|
|
|
}
|
|
|
|
if (v8_enable_pointer_compression) {
|
|
|
|
defines += [ "V8_COMPRESS_POINTERS" ]
|
|
|
|
}
|
|
|
|
if (v8_enable_pointer_compression || v8_enable_31bit_smis_on_64bit_arch) {
|
|
|
|
defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ]
|
|
|
|
}
|
|
|
|
if (v8_deprecation_warnings) {
|
|
|
|
defines += [ "V8_DEPRECATION_WARNINGS" ]
|
|
|
|
}
|
|
|
|
if (v8_imminent_deprecation_warnings) {
|
|
|
|
defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
# Put defines here that are only used in our internal files and NEVER in
|
|
|
|
# external headers that embedders (such as chromium and node) might include.
|
2014-05-06 15:01:24 +00:00
|
|
|
config("features") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-05-06 15:01:24 +00:00
|
|
|
|
|
|
|
defines = []
|
|
|
|
|
2019-02-11 16:11:08 +00:00
|
|
|
configs = [ ":v8_header_features" ]
|
|
|
|
|
2017-09-28 14:05:22 +00:00
|
|
|
if (v8_embedder_string != "") {
|
|
|
|
defines += [ "V8_EMBEDDER_STRING=\"$v8_embedder_string\"" ]
|
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_enable_disassembler) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "ENABLE_DISASSEMBLER" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2017-05-23 17:54:12 +00:00
|
|
|
if (v8_promise_internal_field_count != 0) {
|
|
|
|
defines +=
|
|
|
|
[ "V8_PROMISE_INTERNAL_FIELD_COUNT=${v8_promise_internal_field_count}" ]
|
|
|
|
}
|
2017-09-14 12:09:54 +00:00
|
|
|
defines +=
|
|
|
|
[ "V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=${v8_typed_array_max_size_in_heap}" ]
|
2019-03-20 08:46:47 +00:00
|
|
|
if (v8_enable_raw_heap_snapshots) {
|
|
|
|
defines += [ "V8_ENABLE_RAW_HEAP_SNAPSHOTS" ]
|
|
|
|
}
|
2017-03-01 12:36:40 +00:00
|
|
|
if (v8_enable_future) {
|
|
|
|
defines += [ "V8_ENABLE_FUTURE" ]
|
|
|
|
}
|
2018-10-15 13:10:51 +00:00
|
|
|
if (v8_enable_lite_mode) {
|
|
|
|
defines += [ "V8_LITE_MODE" ]
|
2018-12-21 12:19:11 +00:00
|
|
|
|
|
|
|
# TODO(v8:7777): Remove the define once the --jitless runtime flag does
|
|
|
|
# everything we need.
|
|
|
|
defines += [ "V8_JITLESS_MODE" ]
|
2018-10-15 13:10:51 +00:00
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_enable_gdbjit) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "ENABLE_GDB_JIT_INTERFACE" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2017-02-13 02:54:05 +00:00
|
|
|
if (v8_enable_vtunejit) {
|
|
|
|
defines += [ "ENABLE_VTUNE_JIT_INTERFACE" ]
|
|
|
|
}
|
2018-04-09 15:40:52 +00:00
|
|
|
if (v8_enable_minor_mc) {
|
|
|
|
defines += [ "ENABLE_MINOR_MC" ]
|
|
|
|
}
|
2017-01-13 17:28:51 +00:00
|
|
|
if (v8_enable_object_print) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "OBJECT_PRINT" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_enable_verify_heap) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "VERIFY_HEAP" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2017-01-05 15:01:30 +00:00
|
|
|
if (v8_enable_verify_predictable) {
|
|
|
|
defines += [ "VERIFY_PREDICTABLE" ]
|
|
|
|
}
|
2017-01-13 17:28:51 +00:00
|
|
|
if (v8_enable_trace_maps) {
|
2017-05-16 15:52:10 +00:00
|
|
|
defines += [ "V8_TRACE_MAPS" ]
|
|
|
|
}
|
|
|
|
if (v8_enable_trace_ignition) {
|
|
|
|
defines += [ "V8_TRACE_IGNITION" ]
|
2017-01-13 17:28:51 +00:00
|
|
|
}
|
2017-10-23 11:23:45 +00:00
|
|
|
if (v8_enable_trace_feedback_updates) {
|
|
|
|
defines += [ "V8_TRACE_FEEDBACK_UPDATES" ]
|
|
|
|
}
|
2018-01-17 13:30:12 +00:00
|
|
|
if (v8_enable_test_features) {
|
|
|
|
defines += [ "V8_ENABLE_ALLOCATION_TIMEOUT" ]
|
2017-11-30 18:00:08 +00:00
|
|
|
defines += [ "V8_ENABLE_FORCE_SLOW_PATH" ]
|
2017-11-30 09:20:19 +00:00
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_enable_i18n_support) {
|
2017-04-21 08:35:12 +00:00
|
|
|
defines += [ "V8_INTL_SUPPORT" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_enable_handle_zapping) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "ENABLE_HANDLE_ZAPPING" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2017-03-14 12:31:03 +00:00
|
|
|
if (v8_use_snapshot) {
|
|
|
|
defines += [ "V8_USE_SNAPSHOT" ]
|
2019-03-28 12:37:29 +00:00
|
|
|
if (v8_enable_snapshot_native_code_counters) {
|
|
|
|
defines += [ "V8_SNAPSHOT_NATIVE_CODE_COUNTERS" ]
|
|
|
|
}
|
2017-03-14 12:31:03 +00:00
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_use_external_startup_data) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
|
2014-06-23 13:52:17 +00:00
|
|
|
}
|
2017-05-17 15:22:38 +00:00
|
|
|
if (v8_enable_concurrent_marking) {
|
|
|
|
defines += [ "V8_CONCURRENT_MARKING" ]
|
|
|
|
}
|
2017-06-02 11:52:40 +00:00
|
|
|
if (v8_check_microtasks_scopes_consistency) {
|
|
|
|
defines += [ "V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY" ]
|
|
|
|
}
|
2018-06-13 12:07:37 +00:00
|
|
|
if (v8_enable_embedded_builtins) {
|
2018-11-22 10:25:50 +00:00
|
|
|
defines += [ "V8_EMBEDDED_BUILTINS" ]
|
2018-08-20 18:58:38 +00:00
|
|
|
}
|
2018-03-20 10:16:14 +00:00
|
|
|
if (v8_use_multi_snapshots) {
|
|
|
|
defines += [ "V8_MULTI_SNAPSHOTS" ]
|
|
|
|
}
|
2019-01-09 14:38:22 +00:00
|
|
|
if (v8_use_siphash) {
|
|
|
|
defines += [ "V8_USE_SIPHASH" ]
|
|
|
|
}
|
2019-03-14 13:43:30 +00:00
|
|
|
if (v8_enable_shared_ro_heap) {
|
|
|
|
defines += [ "V8_SHARED_RO_HEAP" ]
|
|
|
|
}
|
2019-03-28 08:52:41 +00:00
|
|
|
if (v8_use_perfetto) {
|
|
|
|
defines += [ "V8_USE_PERFETTO" ]
|
|
|
|
}
|
Reland "V8 x64 backend doesn't emit ABI compliant stack frames"
This is a reland of 3cda21de77d098a612eadf44d504b188a599c5f0
Original change's description:
> V8 x64 backend doesn't emit ABI compliant stack frames
>
> On 64 bit Windows, the OS stack walking does not work because the V8 x64
> backend doesn't emit unwinding info and also because it doesn't emit ABI
> compliant stack frames. See
> https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
> for more details.
>
> This problem can be fixed by observing that V8 frames usually all have the same
> prolog and epilog:
>
> push rbp,
> mov rbp, rsp
> ...
> pop rbp
> ret N
>
> and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
> should walk through V8 frames. Furthermore, since V8 Code objects are all
> allocated in the same code-range for an Isolate, it is possible to register a
> single PDATA/XDATA entry to cover stack walking for all the code generated
> inside that code-range.
>
> This PR contains changes required to enable stack walking on Win64:
>
> EmbeddedFileWriter now adds assembler directives to the builtins
> snapshot source file (embedded.cc) to emit additional entries in the .pdata and
> in the .xdata section of the V8 executable. This takes care of stack walking
> for embedded builtins. (The case of non-embedded builtins is not supported).
> The x64 Assembler has been modified to collect the information required to emit
> this unwind info for builtins.
>
> Stack walking for jitted code is handled is Isolate.cpp, by registering
> dynamically PDATA/XDATA for the whole code-range address space every time a new
> Isolate is initialized, and by unregistering them when the Isolate is
> destroyed.
>
> Stack walking for WASM jitted code is handled is the same way in
> wasm::NativeModule (wasm/wasm-code-manager.cpp).
>
> It is important to note that Crashpad and Breakpad are already registering
> PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
> builtins). Since it is not possible to register multiple PDATA entries for the
> same address range, a new function is added to the V8 API:
> SetUnhandledExceptionCallback() can be used by an embedder to register its own
> unhandled exception handler for exceptions that arise in v8-generated code.
> V8 embedders should be modified accordingly (code for this is in a separate PR
> in the Chromium repository:
> https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
>
> All these changes are experimental, behind:
>
> the 'v8_win64_unwinding_info' build flag, and
> the '--win64-unwinding-info' runtime flag.
>
> Bug: v8:3598
> Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Paolo Severini <paolosev@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#60330}
Bug: v8:3598
Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#60581}
2019-04-01 21:43:23 +00:00
|
|
|
if (v8_win64_unwinding_info) {
|
|
|
|
defines += [ "V8_WIN64_UNWINDING_INFO" ]
|
|
|
|
}
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
|
|
|
|
2014-05-26 07:29:39 +00:00
|
|
|
config("toolchain") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-05-26 07:29:39 +00:00
|
|
|
|
|
|
|
defines = []
|
|
|
|
cflags = []
|
2016-06-20 18:22:21 +00:00
|
|
|
ldflags = []
|
2014-05-26 07:29:39 +00:00
|
|
|
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "arm") {
|
2015-01-20 14:33:58 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_ARM" ]
|
2016-09-01 13:31:32 +00:00
|
|
|
if (arm_version >= 7) {
|
2016-05-02 08:10:32 +00:00
|
|
|
defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ]
|
|
|
|
}
|
|
|
|
if (arm_fpu == "vfpv3-d16") {
|
|
|
|
defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ]
|
|
|
|
} else if (arm_fpu == "vfpv3") {
|
2015-01-20 14:33:58 +00:00
|
|
|
defines += [
|
|
|
|
"CAN_USE_VFP3_INSTRUCTIONS",
|
|
|
|
"CAN_USE_VFP32DREGS",
|
2016-05-02 08:10:32 +00:00
|
|
|
]
|
|
|
|
} else if (arm_fpu == "neon") {
|
|
|
|
defines += [
|
|
|
|
"CAN_USE_VFP3_INSTRUCTIONS",
|
|
|
|
"CAN_USE_VFP32DREGS",
|
|
|
|
"CAN_USE_NEON",
|
2015-01-20 14:33:58 +00:00
|
|
|
]
|
|
|
|
}
|
2016-05-10 10:11:06 +00:00
|
|
|
|
2015-01-20 14:33:58 +00:00
|
|
|
# TODO(jochen): Add support for arm_test_noprobe.
|
2016-05-02 08:10:32 +00:00
|
|
|
|
|
|
|
if (current_cpu != "arm") {
|
|
|
|
# These defines ares used for the ARM simulator.
|
|
|
|
if (arm_float_abi == "hard") {
|
|
|
|
defines += [ "USE_EABI_HARDFLOAT=1" ]
|
|
|
|
} else if (arm_float_abi == "softfp") {
|
|
|
|
defines += [ "USE_EABI_HARDFLOAT=0" ]
|
|
|
|
}
|
|
|
|
}
|
2015-01-20 14:33:58 +00:00
|
|
|
}
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "arm64") {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_ARM64" ]
|
2014-05-26 07:29:39 +00:00
|
|
|
}
|
2016-05-10 10:11:06 +00:00
|
|
|
|
2016-09-13 07:32:40 +00:00
|
|
|
# Mips64el/mipsel simulators.
|
|
|
|
if (is_target_simulator &&
|
|
|
|
(v8_current_cpu == "mipsel" || v8_current_cpu == "mips64el")) {
|
|
|
|
defines += [ "_MIPS_TARGET_SIMULATOR" ]
|
|
|
|
}
|
|
|
|
|
2017-06-02 15:02:18 +00:00
|
|
|
if (v8_current_cpu == "mipsel" || v8_current_cpu == "mips") {
|
2015-03-17 23:13:00 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_MIPS" ]
|
2016-05-02 08:10:32 +00:00
|
|
|
if (v8_can_use_fpu_instructions) {
|
|
|
|
defines += [ "CAN_USE_FPU_INSTRUCTIONS" ]
|
|
|
|
}
|
|
|
|
if (v8_use_mips_abi_hardfloat) {
|
|
|
|
defines += [
|
|
|
|
"__mips_hard_float=1",
|
|
|
|
"CAN_USE_FPU_INSTRUCTIONS",
|
|
|
|
]
|
|
|
|
} else {
|
|
|
|
defines += [ "__mips_soft_float=1" ]
|
|
|
|
}
|
|
|
|
if (mips_arch_variant == "r6") {
|
|
|
|
defines += [
|
|
|
|
"_MIPS_ARCH_MIPS32R6",
|
|
|
|
"FPU_MODE_FP64",
|
|
|
|
]
|
2018-01-29 10:24:31 +00:00
|
|
|
if (mips_use_msa) {
|
|
|
|
defines += [ "_MIPS_MSA" ]
|
|
|
|
}
|
2016-05-02 08:10:32 +00:00
|
|
|
} else if (mips_arch_variant == "r2") {
|
|
|
|
defines += [ "_MIPS_ARCH_MIPS32R2" ]
|
|
|
|
if (mips_fpu_mode == "fp64") {
|
|
|
|
defines += [ "FPU_MODE_FP64" ]
|
|
|
|
} else if (mips_fpu_mode == "fpxx") {
|
|
|
|
defines += [ "FPU_MODE_FPXX" ]
|
|
|
|
} else if (mips_fpu_mode == "fp32") {
|
|
|
|
defines += [ "FPU_MODE_FP32" ]
|
|
|
|
}
|
|
|
|
} else if (mips_arch_variant == "r1") {
|
|
|
|
defines += [ "FPU_MODE_FP32" ]
|
|
|
|
}
|
2016-05-10 10:11:06 +00:00
|
|
|
|
2016-05-02 08:10:32 +00:00
|
|
|
# TODO(jochen): Add support for mips_arch_variant rx and loongson.
|
2015-03-17 23:13:00 +00:00
|
|
|
}
|
2016-05-10 10:11:06 +00:00
|
|
|
|
2017-06-02 15:02:18 +00:00
|
|
|
if (v8_current_cpu == "mips64el" || v8_current_cpu == "mips64") {
|
2015-03-17 23:13:00 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_MIPS64" ]
|
2016-05-02 08:10:32 +00:00
|
|
|
if (v8_can_use_fpu_instructions) {
|
|
|
|
defines += [ "CAN_USE_FPU_INSTRUCTIONS" ]
|
|
|
|
}
|
2016-05-10 10:11:06 +00:00
|
|
|
|
2017-06-02 15:02:18 +00:00
|
|
|
if (host_byteorder == "little") {
|
|
|
|
defines += [ "V8_TARGET_ARCH_MIPS64_LE" ]
|
|
|
|
} else if (host_byteorder == "big") {
|
|
|
|
defines += [ "V8_TARGET_ARCH_MIPS64_BE" ]
|
|
|
|
}
|
2016-05-02 08:10:32 +00:00
|
|
|
if (v8_use_mips_abi_hardfloat) {
|
|
|
|
defines += [
|
|
|
|
"__mips_hard_float=1",
|
|
|
|
"CAN_USE_FPU_INSTRUCTIONS",
|
|
|
|
]
|
|
|
|
} else {
|
|
|
|
defines += [ "__mips_soft_float=1" ]
|
|
|
|
}
|
|
|
|
if (mips_arch_variant == "r6") {
|
|
|
|
defines += [ "_MIPS_ARCH_MIPS64R6" ]
|
2018-01-29 10:24:31 +00:00
|
|
|
if (mips_use_msa) {
|
|
|
|
defines += [ "_MIPS_MSA" ]
|
|
|
|
}
|
2016-05-02 08:10:32 +00:00
|
|
|
} else if (mips_arch_variant == "r2") {
|
|
|
|
defines += [ "_MIPS_ARCH_MIPS64R2" ]
|
|
|
|
}
|
2015-03-17 23:13:00 +00:00
|
|
|
}
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
|
2016-01-14 17:16:10 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_S390" ]
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "s390x") {
|
2016-06-09 14:19:36 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_S390X" ]
|
|
|
|
}
|
2017-05-12 01:35:09 +00:00
|
|
|
if (host_byteorder == "little") {
|
2016-06-09 14:19:36 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ]
|
2017-03-13 15:05:51 +00:00
|
|
|
} else {
|
|
|
|
cflags += [ "-march=z196" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
|
|
|
|
defines += [ "V8_TARGET_ARCH_PPC" ]
|
|
|
|
if (v8_current_cpu == "ppc64") {
|
|
|
|
defines += [ "V8_TARGET_ARCH_PPC64" ]
|
|
|
|
}
|
2017-05-12 01:35:09 +00:00
|
|
|
if (host_byteorder == "little") {
|
2017-03-13 15:05:51 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_PPC_LE" ]
|
2017-05-12 01:35:09 +00:00
|
|
|
} else if (host_byteorder == "big") {
|
2017-03-13 15:05:51 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_PPC_BE" ]
|
|
|
|
if (current_os == "aix") {
|
|
|
|
cflags += [
|
|
|
|
# Work around AIX ceil, trunc and round oddities.
|
|
|
|
"-mcpu=power5+",
|
|
|
|
"-mfprnd",
|
|
|
|
|
|
|
|
# Work around AIX assembler popcntb bug.
|
|
|
|
"-mno-popcntb",
|
|
|
|
]
|
|
|
|
}
|
2016-06-09 14:19:36 +00:00
|
|
|
}
|
2016-01-14 17:16:10 +00:00
|
|
|
}
|
2017-05-12 01:35:09 +00:00
|
|
|
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "x86") {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_IA32" ]
|
2016-06-20 18:22:21 +00:00
|
|
|
if (is_win) {
|
|
|
|
# Ensure no surprising artifacts from 80bit double math with x86.
|
|
|
|
cflags += [ "/arch:SSE2" ]
|
|
|
|
}
|
2014-05-26 07:29:39 +00:00
|
|
|
}
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "x64") {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "V8_TARGET_ARCH_X64" ]
|
2016-06-20 18:22:21 +00:00
|
|
|
if (is_win) {
|
|
|
|
# Increase the initial stack size. The default is 1MB, this is 2MB. This
|
|
|
|
# applies only to executables and shared libraries produced by V8 since
|
|
|
|
# ldflags are not pushed to dependants.
|
|
|
|
ldflags += [ "/STACK:2097152" ]
|
|
|
|
}
|
2014-05-26 07:29:39 +00:00
|
|
|
}
|
2016-08-02 15:35:24 +00:00
|
|
|
if (is_android && v8_android_log_stdout) {
|
|
|
|
defines += [ "V8_ANDROID_LOG_STDOUT" ]
|
|
|
|
}
|
2016-04-29 12:24:58 +00:00
|
|
|
|
2016-06-20 18:22:21 +00:00
|
|
|
# TODO(jochen): Support v8_enable_prof on Windows.
|
2014-05-26 07:29:39 +00:00
|
|
|
# TODO(jochen): Add support for compiling with simulators.
|
|
|
|
|
2018-04-06 10:24:41 +00:00
|
|
|
if (v8_enable_debugging_features) {
|
2016-07-04 07:52:08 +00:00
|
|
|
if (is_linux && v8_enable_backtrace) {
|
|
|
|
ldflags += [ "-rdynamic" ]
|
|
|
|
}
|
|
|
|
|
2017-01-13 17:28:51 +00:00
|
|
|
defines += [ "DEBUG" ]
|
2016-06-07 13:44:01 +00:00
|
|
|
if (v8_enable_slow_dchecks) {
|
2016-04-12 13:47:44 +00:00
|
|
|
defines += [ "ENABLE_SLOW_DCHECKS" ]
|
|
|
|
}
|
2016-06-07 13:44:01 +00:00
|
|
|
} else if (dcheck_always_on) {
|
|
|
|
defines += [ "DEBUG" ]
|
2014-05-26 07:29:39 +00:00
|
|
|
}
|
2016-09-14 11:18:20 +00:00
|
|
|
|
2017-01-27 11:32:27 +00:00
|
|
|
if (v8_enable_verify_csa) {
|
|
|
|
defines += [ "ENABLE_VERIFY_CSA" ]
|
|
|
|
}
|
|
|
|
|
2018-01-05 10:05:05 +00:00
|
|
|
if (!v8_untrusted_code_mitigations) {
|
|
|
|
defines += [ "DISABLE_UNTRUSTED_CODE_MITIGATIONS" ]
|
|
|
|
}
|
|
|
|
|
2016-09-14 11:18:20 +00:00
|
|
|
if (v8_no_inline) {
|
2019-01-29 04:53:40 +00:00
|
|
|
if (is_win) {
|
|
|
|
cflags += [ "/Ob0" ]
|
|
|
|
} else {
|
|
|
|
cflags += [
|
|
|
|
"-fno-inline-functions",
|
|
|
|
"-fno-inline",
|
|
|
|
]
|
|
|
|
}
|
2016-09-14 11:18:20 +00:00
|
|
|
}
|
2016-10-12 17:49:44 +00:00
|
|
|
|
|
|
|
if (is_clang) {
|
2019-04-12 02:07:59 +00:00
|
|
|
cflags += [ "-Wmissing-field-initializers" ]
|
2017-12-01 11:00:00 +00:00
|
|
|
|
|
|
|
if (v8_current_cpu != "mips" && v8_current_cpu != "mipsel") {
|
|
|
|
# We exclude MIPS because the IsMipsArchVariant macro causes trouble.
|
|
|
|
cflags += [ "-Wunreachable-code" ]
|
|
|
|
}
|
|
|
|
|
2017-04-11 09:05:09 +00:00
|
|
|
if (v8_current_cpu == "x64" || v8_current_cpu == "arm64" ||
|
|
|
|
v8_current_cpu == "mips64el") {
|
|
|
|
cflags += [ "-Wshorten-64-to-32" ]
|
|
|
|
}
|
2016-10-12 17:49:44 +00:00
|
|
|
}
|
2017-03-17 15:18:18 +00:00
|
|
|
|
|
|
|
if (is_win) {
|
|
|
|
cflags += [
|
|
|
|
"/wd4245", # Conversion with signed/unsigned mismatch.
|
|
|
|
"/wd4267", # Conversion with possible loss of data.
|
|
|
|
"/wd4324", # Padding structure due to alignment.
|
|
|
|
"/wd4701", # Potentially uninitialized local variable.
|
|
|
|
"/wd4702", # Unreachable code.
|
|
|
|
"/wd4703", # Potentially uninitialized local pointer variable.
|
|
|
|
"/wd4709", # Comma operator within array index expr (bugged).
|
2017-03-20 21:48:26 +00:00
|
|
|
"/wd4714", # Function marked forceinline not inlined.
|
2018-04-20 13:08:41 +00:00
|
|
|
|
|
|
|
# MSVC assumes that control can get past an exhaustive switch and then
|
|
|
|
# warns if there's no return there (see https://crbug.com/v8/7658)
|
|
|
|
"/wd4715", # Not all control paths return a value.
|
|
|
|
|
2017-03-17 15:18:18 +00:00
|
|
|
"/wd4718", # Recursive call has no side-effect.
|
2018-05-18 10:03:21 +00:00
|
|
|
"/wd4723", # https://crbug.com/v8/7771
|
|
|
|
"/wd4724", # https://crbug.com/v8/7771
|
2017-03-17 15:18:18 +00:00
|
|
|
"/wd4800", # Forcing value to bool.
|
|
|
|
]
|
|
|
|
}
|
2017-05-04 12:59:38 +00:00
|
|
|
|
|
|
|
if (!is_clang && !is_win) {
|
|
|
|
cflags += [
|
|
|
|
# Disable gcc warnings for optimizations based on the assumption that
|
|
|
|
# signed overflow does not occur. Generates false positives (see
|
|
|
|
# http://crbug.com/v8/6341).
|
|
|
|
"-Wno-strict-overflow",
|
2018-04-20 13:08:41 +00:00
|
|
|
|
|
|
|
# GCC assumes that control can get past an exhaustive switch and then
|
|
|
|
# warns if there's no return there (see https://crbug.com/v8/7658).
|
|
|
|
"-Wno-return-type",
|
2017-05-04 12:59:38 +00:00
|
|
|
]
|
|
|
|
}
|
2019-01-30 20:06:37 +00:00
|
|
|
|
|
|
|
# Chromium uses a hand-picked subset of UBSan coverage. We want everything.
|
|
|
|
if (is_ubsan) {
|
|
|
|
cflags += [ "-fsanitize=undefined" ]
|
|
|
|
}
|
2014-05-26 07:29:39 +00:00
|
|
|
}
|
|
|
|
|
2019-04-09 12:34:36 +00:00
|
|
|
# For code that is hot during mksnapshot. In fast-mksnapshot builds, we
|
|
|
|
# optimize some files even in debug builds to speed up mksnapshot times.
|
|
|
|
config("always_optimize") {
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
|
|
|
|
# TODO(crbug.com/621335) Rework this so that we don't have the confusion
|
|
|
|
# between "optimize_speed" and "optimize_max".
|
|
|
|
if (((is_posix && !is_android) || is_fuchsia) && !using_sanitizer) {
|
|
|
|
configs += [ "//build/config/compiler:optimize_speed" ]
|
|
|
|
} else {
|
|
|
|
configs += [ "//build/config/compiler:optimize_max" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-06-26 11:06:03 +00:00
|
|
|
# Configs for code coverage with gcov. Separate configs for cflags and ldflags
|
|
|
|
# to selectively influde cflags in non-test targets only.
|
2017-06-27 11:49:13 +00:00
|
|
|
config("v8_gcov_coverage_cflags") {
|
|
|
|
cflags = [
|
|
|
|
"-fprofile-arcs",
|
|
|
|
"-ftest-coverage",
|
|
|
|
]
|
2017-06-26 11:06:03 +00:00
|
|
|
}
|
|
|
|
|
2017-06-27 11:49:13 +00:00
|
|
|
config("v8_gcov_coverage_ldflags") {
|
|
|
|
ldflags = [ "-fprofile-arcs" ]
|
2017-06-26 11:06:03 +00:00
|
|
|
}
|
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
###############################################################################
|
|
|
|
# Actions
|
|
|
|
#
|
|
|
|
|
2018-11-22 10:25:50 +00:00
|
|
|
# Only for Windows clang builds. Converts the embedded.S file produced by
|
|
|
|
# mksnapshot into an embedded.cc file with corresponding inline assembly.
|
|
|
|
template("asm_to_inline_asm") {
|
|
|
|
name = target_name
|
|
|
|
if (name == "default") {
|
|
|
|
suffix = ""
|
|
|
|
} else {
|
|
|
|
suffix = "_$name"
|
|
|
|
}
|
|
|
|
|
|
|
|
action("asm_to_inline_asm_" + name) {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
assert(emit_builtins_as_inline_asm)
|
|
|
|
|
|
|
|
script = "tools/snapshot/asm_to_inline_asm.py"
|
|
|
|
deps = [
|
|
|
|
":run_mksnapshot_" + name,
|
|
|
|
]
|
|
|
|
sources = [
|
|
|
|
"$target_gen_dir/embedded${suffix}.S",
|
|
|
|
]
|
|
|
|
outputs = [
|
|
|
|
"$target_gen_dir/embedded${suffix}.cc",
|
|
|
|
]
|
|
|
|
args = invoker.args
|
|
|
|
args += [
|
|
|
|
rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir),
|
|
|
|
rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir),
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-05-08 08:44:47 +00:00
|
|
|
action("js2c_extras") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
script = "tools/js2c.py"
|
|
|
|
|
|
|
|
sources = v8_extra_library_files
|
|
|
|
|
|
|
|
outputs = [
|
|
|
|
"$target_gen_dir/extras-libraries.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
args = [
|
2016-03-31 07:30:16 +00:00
|
|
|
rebase_path("$target_gen_dir/extras-libraries.cc", root_build_dir),
|
2015-05-08 08:44:47 +00:00
|
|
|
"EXTRAS",
|
|
|
|
] + rebase_path(sources, root_build_dir)
|
|
|
|
|
|
|
|
if (v8_use_external_startup_data) {
|
|
|
|
outputs += [ "$target_gen_dir/libraries_extras.bin" ]
|
|
|
|
args += [
|
|
|
|
"--startup_blob",
|
|
|
|
rebase_path("$target_gen_dir/libraries_extras.bin", root_build_dir),
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-07-07 16:12:35 +00:00
|
|
|
if (is_android && enable_java_templates) {
|
2015-11-05 17:28:57 +00:00
|
|
|
android_assets("v8_external_startup_data_assets") {
|
|
|
|
if (v8_use_external_startup_data) {
|
2018-03-20 10:16:14 +00:00
|
|
|
# We don't support side-by-side snapshots on Android within Chromium.
|
|
|
|
assert(!v8_use_multi_snapshots)
|
2015-11-05 17:28:57 +00:00
|
|
|
deps = [
|
|
|
|
"//v8",
|
|
|
|
]
|
2016-06-22 18:39:13 +00:00
|
|
|
sources = [
|
|
|
|
"$root_out_dir/natives_blob.bin",
|
|
|
|
]
|
|
|
|
renaming_sources = [ "$root_out_dir/snapshot_blob.bin" ]
|
|
|
|
if (current_cpu == "arm" || current_cpu == "x86" ||
|
|
|
|
current_cpu == "mipsel") {
|
|
|
|
renaming_destinations = [ "snapshot_blob_32.bin" ]
|
|
|
|
} else {
|
|
|
|
renaming_destinations = [ "snapshot_blob_64.bin" ]
|
|
|
|
}
|
2015-11-05 17:28:57 +00:00
|
|
|
disable_compression = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-06-23 13:52:17 +00:00
|
|
|
if (v8_use_external_startup_data) {
|
|
|
|
action("natives_blob") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-06-23 13:52:17 +00:00
|
|
|
|
|
|
|
deps = [
|
2016-03-31 07:30:16 +00:00
|
|
|
":js2c_extras",
|
2014-06-23 13:52:17 +00:00
|
|
|
]
|
|
|
|
|
2016-03-31 13:57:24 +00:00
|
|
|
# NOSORT
|
2014-06-23 13:52:17 +00:00
|
|
|
sources = [
|
2016-03-31 07:30:16 +00:00
|
|
|
"$target_gen_dir/libraries_extras.bin",
|
2014-06-23 13:52:17 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
outputs = [
|
2015-01-08 13:21:52 +00:00
|
|
|
"$root_out_dir/natives_blob.bin",
|
2014-06-23 13:52:17 +00:00
|
|
|
]
|
|
|
|
|
2018-03-26 07:34:41 +00:00
|
|
|
data = [
|
|
|
|
"$root_out_dir/natives_blob.bin",
|
|
|
|
]
|
|
|
|
|
2014-06-23 13:52:17 +00:00
|
|
|
script = "tools/concatenate-files.py"
|
|
|
|
|
|
|
|
args = rebase_path(sources + outputs, root_build_dir)
|
|
|
|
}
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
action("postmortem-metadata") {
|
2015-05-05 21:16:12 +00:00
|
|
|
# Only targets in this file and the top-level visibility target can
|
|
|
|
# depend on this.
|
|
|
|
visibility = [
|
|
|
|
":*",
|
|
|
|
"//:gn_visibility",
|
|
|
|
]
|
2014-05-06 15:01:24 +00:00
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
script = "tools/gen-postmortem-metadata.py"
|
|
|
|
|
2016-03-31 11:12:10 +00:00
|
|
|
# NOSORT
|
2014-05-05 11:06:26 +00:00
|
|
|
sources = [
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/objects.h",
|
2016-03-31 11:12:10 +00:00
|
|
|
"src/objects-inl.h",
|
2018-09-12 10:35:23 +00:00
|
|
|
"src/objects/allocation-site-inl.h",
|
|
|
|
"src/objects/allocation-site.h",
|
2018-12-17 10:42:00 +00:00
|
|
|
"src/objects/cell-inl.h",
|
|
|
|
"src/objects/cell.h",
|
2017-11-06 18:01:59 +00:00
|
|
|
"src/objects/code-inl.h",
|
|
|
|
"src/objects/code.h",
|
2017-12-06 16:52:26 +00:00
|
|
|
"src/objects/data-handler.h",
|
|
|
|
"src/objects/data-handler-inl.h",
|
2018-12-13 23:35:14 +00:00
|
|
|
"src/objects/feedback-cell.h",
|
|
|
|
"src/objects/feedback-cell-inl.h",
|
2017-12-01 11:33:03 +00:00
|
|
|
"src/objects/fixed-array-inl.h",
|
|
|
|
"src/objects/fixed-array.h",
|
2018-12-17 17:01:48 +00:00
|
|
|
"src/objects/heap-number-inl.h",
|
|
|
|
"src/objects/heap-number.h",
|
2018-10-24 01:44:19 +00:00
|
|
|
"src/objects/heap-object-inl.h",
|
|
|
|
"src/objects/heap-object.h",
|
2018-11-26 14:34:01 +00:00
|
|
|
"src/objects/instance-type.h",
|
2017-10-13 15:06:23 +00:00
|
|
|
"src/objects/js-array-inl.h",
|
|
|
|
"src/objects/js-array.h",
|
2018-08-16 16:01:36 +00:00
|
|
|
"src/objects/js-array-buffer-inl.h",
|
|
|
|
"src/objects/js-array-buffer.h",
|
2018-09-21 12:02:47 +00:00
|
|
|
"src/objects/js-objects-inl.h",
|
|
|
|
"src/objects/js-objects.h",
|
2018-10-04 09:47:11 +00:00
|
|
|
"src/objects/js-promise-inl.h",
|
|
|
|
"src/objects/js-promise.h",
|
2017-10-13 15:06:23 +00:00
|
|
|
"src/objects/js-regexp-inl.h",
|
|
|
|
"src/objects/js-regexp.h",
|
2018-04-05 14:41:26 +00:00
|
|
|
"src/objects/js-regexp-string-iterator-inl.h",
|
|
|
|
"src/objects/js-regexp-string-iterator.h",
|
2017-05-17 11:31:18 +00:00
|
|
|
"src/objects/map.h",
|
2019-02-01 06:37:59 +00:00
|
|
|
"src/objects/map.cc",
|
2017-05-17 11:31:18 +00:00
|
|
|
"src/objects/map-inl.h",
|
2019-02-04 10:13:58 +00:00
|
|
|
"src/objects/js-objects.cc",
|
2018-09-04 18:51:38 +00:00
|
|
|
"src/objects/name.h",
|
|
|
|
"src/objects/name-inl.h",
|
2018-12-17 19:42:33 +00:00
|
|
|
"src/objects/oddball-inl.h",
|
|
|
|
"src/objects/oddball.h",
|
2018-07-28 03:09:39 +00:00
|
|
|
"src/objects/scope-info.h",
|
2017-05-30 12:04:34 +00:00
|
|
|
"src/objects/script.h",
|
|
|
|
"src/objects/script-inl.h",
|
2017-05-29 13:24:32 +00:00
|
|
|
"src/objects/shared-function-info.h",
|
|
|
|
"src/objects/shared-function-info-inl.h",
|
2019-01-31 09:46:40 +00:00
|
|
|
"src/objects/string.cc",
|
2017-06-12 11:08:30 +00:00
|
|
|
"src/objects/string.h",
|
2019-01-31 09:46:40 +00:00
|
|
|
"src/objects/string-comparator.cc",
|
|
|
|
"src/objects/string-comparator.h",
|
2017-06-12 11:08:30 +00:00
|
|
|
"src/objects/string-inl.h",
|
2018-12-13 23:35:14 +00:00
|
|
|
"src/objects/struct.h",
|
|
|
|
"src/objects/struct-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
outputs = [
|
2015-01-08 13:21:52 +00:00
|
|
|
"$target_gen_dir/debug-support.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
|
2015-01-08 13:21:52 +00:00
|
|
|
args = rebase_path(outputs, root_build_dir) +
|
|
|
|
rebase_path(sources, root_build_dir)
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
2018-05-04 13:18:37 +00:00
|
|
|
torque_files = [
|
|
|
|
"src/builtins/base.tq",
|
2019-03-05 14:24:43 +00:00
|
|
|
"src/builtins/growable-fixed-array.tq",
|
2018-12-14 19:35:34 +00:00
|
|
|
"src/builtins/frames.tq",
|
|
|
|
"src/builtins/arguments.tq",
|
2018-05-04 13:18:37 +00:00
|
|
|
"src/builtins/array.tq",
|
2018-08-08 05:52:45 +00:00
|
|
|
"src/builtins/array-copywithin.tq",
|
2019-02-15 18:29:40 +00:00
|
|
|
"src/builtins/array-every.tq",
|
2019-01-08 14:49:43 +00:00
|
|
|
"src/builtins/array-filter.tq",
|
2019-02-27 13:26:01 +00:00
|
|
|
"src/builtins/array-find.tq",
|
|
|
|
"src/builtins/array-findindex.tq",
|
2018-06-12 19:53:44 +00:00
|
|
|
"src/builtins/array-foreach.tq",
|
2018-10-16 12:52:25 +00:00
|
|
|
"src/builtins/array-join.tq",
|
2018-08-28 09:14:58 +00:00
|
|
|
"src/builtins/array-lastindexof.tq",
|
2018-10-24 09:31:21 +00:00
|
|
|
"src/builtins/array-of.tq",
|
2019-01-23 15:01:19 +00:00
|
|
|
"src/builtins/array-map.tq",
|
2019-02-25 14:41:50 +00:00
|
|
|
"src/builtins/array-reduce.tq",
|
|
|
|
"src/builtins/array-reduce-right.tq",
|
2018-08-23 12:41:58 +00:00
|
|
|
"src/builtins/array-reverse.tq",
|
2019-03-08 10:40:11 +00:00
|
|
|
"src/builtins/array-shift.tq",
|
2018-10-19 16:00:14 +00:00
|
|
|
"src/builtins/array-slice.tq",
|
2019-02-15 18:29:40 +00:00
|
|
|
"src/builtins/array-some.tq",
|
2018-09-04 12:30:33 +00:00
|
|
|
"src/builtins/array-splice.tq",
|
2018-09-06 05:47:23 +00:00
|
|
|
"src/builtins/array-unshift.tq",
|
2018-11-15 08:55:27 +00:00
|
|
|
"src/builtins/collections.tq",
|
2018-05-23 14:13:07 +00:00
|
|
|
"src/builtins/data-view.tq",
|
2019-01-07 05:08:08 +00:00
|
|
|
"src/builtins/extras-utils.tq",
|
2019-04-18 12:06:43 +00:00
|
|
|
"src/builtins/internal-coverage.tq",
|
2018-10-31 14:59:13 +00:00
|
|
|
"src/builtins/iterator.tq",
|
2019-04-26 01:28:38 +00:00
|
|
|
"src/builtins/math.tq",
|
2019-03-18 18:10:18 +00:00
|
|
|
"src/builtins/object-fromentries.tq",
|
2019-04-16 16:19:22 +00:00
|
|
|
"src/builtins/proxy.tq",
|
|
|
|
"src/builtins/proxy-constructor.tq",
|
2019-04-24 17:29:13 +00:00
|
|
|
"src/builtins/proxy-get-property.tq",
|
2019-04-03 16:20:17 +00:00
|
|
|
"src/builtins/proxy-revocable.tq",
|
2019-03-18 18:10:18 +00:00
|
|
|
"src/builtins/proxy-revoke.tq",
|
2019-03-18 15:14:13 +00:00
|
|
|
"src/builtins/regexp.tq",
|
|
|
|
"src/builtins/regexp-replace.tq",
|
2019-02-07 14:21:16 +00:00
|
|
|
"src/builtins/string-endswith.tq",
|
2019-03-14 13:26:28 +00:00
|
|
|
"src/builtins/string-html.tq",
|
2019-03-18 12:26:35 +00:00
|
|
|
"src/builtins/string-repeat.tq",
|
2019-02-04 13:04:16 +00:00
|
|
|
"src/builtins/string-startswith.tq",
|
2018-11-22 15:29:55 +00:00
|
|
|
"src/builtins/typed-array.tq",
|
2019-01-18 14:51:18 +00:00
|
|
|
"src/builtins/typed-array-createtypedarray.tq",
|
2019-03-08 14:49:27 +00:00
|
|
|
"src/builtins/typed-array-every.tq",
|
2019-03-05 14:24:43 +00:00
|
|
|
"src/builtins/typed-array-filter.tq",
|
2019-03-08 14:49:27 +00:00
|
|
|
"src/builtins/typed-array-find.tq",
|
|
|
|
"src/builtins/typed-array-findindex.tq",
|
2019-03-01 11:28:45 +00:00
|
|
|
"src/builtins/typed-array-foreach.tq",
|
|
|
|
"src/builtins/typed-array-reduce.tq",
|
|
|
|
"src/builtins/typed-array-reduceright.tq",
|
2019-03-04 13:31:16 +00:00
|
|
|
"src/builtins/typed-array-slice.tq",
|
2019-03-08 14:49:27 +00:00
|
|
|
"src/builtins/typed-array-some.tq",
|
2019-02-27 04:42:39 +00:00
|
|
|
"src/builtins/typed-array-subarray.tq",
|
2019-04-26 01:16:36 +00:00
|
|
|
"src/objects/intl-objects.tq",
|
2018-05-13 10:10:44 +00:00
|
|
|
"test/torque/test-torque.tq",
|
2018-08-22 13:17:38 +00:00
|
|
|
"third_party/v8/builtins/array-sort.tq",
|
2018-05-04 13:18:37 +00:00
|
|
|
]
|
|
|
|
|
2019-04-26 01:16:36 +00:00
|
|
|
if (!v8_enable_i18n_support) {
|
|
|
|
torque_files -= [ "src/objects/intl-objects.tq" ]
|
|
|
|
}
|
|
|
|
|
2018-11-13 13:00:34 +00:00
|
|
|
torque_namespaces = [
|
2018-12-14 19:35:34 +00:00
|
|
|
"arguments",
|
2018-05-04 13:18:37 +00:00
|
|
|
"array",
|
2019-01-30 15:05:00 +00:00
|
|
|
"array-copywithin",
|
|
|
|
"array-filter",
|
2019-02-27 13:26:01 +00:00
|
|
|
"array-find",
|
|
|
|
"array-findindex",
|
2019-01-30 15:05:00 +00:00
|
|
|
"array-foreach",
|
|
|
|
"array-join",
|
|
|
|
"array-map",
|
|
|
|
"array-of",
|
|
|
|
"array-reverse",
|
2019-03-08 10:40:11 +00:00
|
|
|
"array-shift",
|
2019-01-30 15:05:00 +00:00
|
|
|
"array-slice",
|
|
|
|
"array-splice",
|
|
|
|
"array-unshift",
|
|
|
|
"array-lastindexof",
|
2019-02-04 13:04:16 +00:00
|
|
|
"base",
|
2018-11-15 08:55:27 +00:00
|
|
|
"collections",
|
2019-02-04 13:04:16 +00:00
|
|
|
"data-view",
|
|
|
|
"extras-utils",
|
2019-03-05 14:24:43 +00:00
|
|
|
"growable-fixed-array",
|
2019-04-18 12:06:43 +00:00
|
|
|
"internal-coverage",
|
2018-10-31 14:59:13 +00:00
|
|
|
"iterator",
|
2019-04-26 01:28:38 +00:00
|
|
|
"math",
|
2018-11-22 15:29:55 +00:00
|
|
|
"object",
|
2019-03-18 18:10:18 +00:00
|
|
|
"proxy",
|
2019-03-18 15:14:13 +00:00
|
|
|
"regexp",
|
|
|
|
"regexp-replace",
|
2019-02-04 13:04:16 +00:00
|
|
|
"string",
|
2019-03-14 13:26:28 +00:00
|
|
|
"string-html",
|
2019-03-18 12:26:35 +00:00
|
|
|
"string-repeat",
|
2019-02-04 13:04:16 +00:00
|
|
|
"test",
|
2018-05-04 13:18:37 +00:00
|
|
|
"typed-array",
|
2019-01-30 15:05:00 +00:00
|
|
|
"typed-array-createtypedarray",
|
2019-03-08 14:49:27 +00:00
|
|
|
"typed-array-every",
|
2019-03-05 14:24:43 +00:00
|
|
|
"typed-array-filter",
|
2019-03-08 14:49:27 +00:00
|
|
|
"typed-array-find",
|
|
|
|
"typed-array-findindex",
|
2019-03-01 11:28:45 +00:00
|
|
|
"typed-array-foreach",
|
|
|
|
"typed-array-reduce",
|
|
|
|
"typed-array-reduceright",
|
2019-03-04 13:31:16 +00:00
|
|
|
"typed-array-slice",
|
2019-03-08 14:49:27 +00:00
|
|
|
"typed-array-some",
|
2019-02-27 04:42:39 +00:00
|
|
|
"typed-array-subarray",
|
2018-05-04 13:18:37 +00:00
|
|
|
]
|
|
|
|
|
2018-04-16 09:24:22 +00:00
|
|
|
action("run_torque") {
|
|
|
|
visibility = [
|
|
|
|
":*",
|
|
|
|
"tools/gcmole/:*",
|
2018-05-13 10:10:44 +00:00
|
|
|
"test/cctest/:*",
|
2018-04-16 09:24:22 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
2018-09-12 11:55:04 +00:00
|
|
|
":torque($v8_generator_toolchain)",
|
2018-04-16 09:24:22 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
script = "tools/run.py"
|
|
|
|
|
2018-05-04 13:18:37 +00:00
|
|
|
sources = torque_files
|
2018-04-16 09:24:22 +00:00
|
|
|
|
|
|
|
outputs = [
|
2018-05-04 13:18:37 +00:00
|
|
|
"$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h",
|
2019-02-01 16:59:50 +00:00
|
|
|
"$target_gen_dir/torque-generated/class-definitions-from-dsl.h",
|
2019-04-09 12:24:52 +00:00
|
|
|
"$target_gen_dir/torque-generated/objects-printer-from-dsl.cc",
|
2018-04-16 09:24:22 +00:00
|
|
|
]
|
2018-11-13 13:00:34 +00:00
|
|
|
foreach(namespace, torque_namespaces) {
|
2018-05-04 13:18:37 +00:00
|
|
|
outputs += [
|
2018-11-13 13:00:34 +00:00
|
|
|
"$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc",
|
|
|
|
"$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h",
|
2018-05-04 13:18:37 +00:00
|
|
|
]
|
|
|
|
}
|
2018-04-16 09:24:22 +00:00
|
|
|
|
|
|
|
args = [
|
2018-09-12 11:55:04 +00:00
|
|
|
"./" + rebase_path(get_label_info(":torque($v8_generator_toolchain)",
|
2018-04-16 09:24:22 +00:00
|
|
|
"root_out_dir") + "/torque",
|
|
|
|
root_build_dir),
|
|
|
|
"-o",
|
2018-05-04 13:18:37 +00:00
|
|
|
rebase_path("$target_gen_dir/torque-generated", root_build_dir),
|
2018-04-16 09:24:22 +00:00
|
|
|
]
|
2018-05-04 13:18:37 +00:00
|
|
|
|
|
|
|
foreach(file, torque_files) {
|
|
|
|
args += [ rebase_path(file, root_build_dir) ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-10 09:30:39 +00:00
|
|
|
group("v8_maybe_icu") {
|
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
public_deps = [
|
|
|
|
"//third_party/icu",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-05-04 13:18:37 +00:00
|
|
|
v8_source_set("torque_generated_initializers") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
deps = [
|
2018-09-10 12:55:45 +00:00
|
|
|
":generate_bytecode_builtins_list",
|
2018-05-04 13:18:37 +00:00
|
|
|
":run_torque",
|
|
|
|
]
|
|
|
|
|
2019-04-10 09:30:39 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_maybe_icu",
|
|
|
|
]
|
2018-07-09 17:04:28 +00:00
|
|
|
|
2018-05-04 13:18:37 +00:00
|
|
|
sources = []
|
2018-11-13 13:00:34 +00:00
|
|
|
foreach(namespace, torque_namespaces) {
|
2018-05-04 13:18:37 +00:00
|
|
|
sources += [
|
2018-11-13 13:00:34 +00:00
|
|
|
"$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc",
|
|
|
|
"$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h",
|
2018-05-04 13:18:37 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2019-04-02 14:35:58 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2018-04-16 09:24:22 +00:00
|
|
|
}
|
|
|
|
|
2019-04-09 12:24:52 +00:00
|
|
|
v8_source_set("torque_generated_definitions") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
deps = [
|
2019-04-09 23:35:46 +00:00
|
|
|
":generate_bytecode_builtins_list",
|
2019-04-09 12:24:52 +00:00
|
|
|
":run_torque",
|
|
|
|
]
|
|
|
|
|
2019-04-10 09:30:39 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_maybe_icu",
|
|
|
|
]
|
2019-04-09 12:24:52 +00:00
|
|
|
|
|
|
|
sources = [
|
|
|
|
"$target_gen_dir/torque-generated/objects-printer-from-dsl.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
}
|
|
|
|
|
2018-09-10 12:55:45 +00:00
|
|
|
action("generate_bytecode_builtins_list") {
|
|
|
|
script = "tools/run.py"
|
|
|
|
outputs = [
|
|
|
|
"$target_gen_dir/builtins-generated/bytecodes-builtins-list.h",
|
|
|
|
]
|
|
|
|
deps = [
|
2018-09-12 11:55:04 +00:00
|
|
|
":bytecode_builtins_list_generator($v8_generator_toolchain)",
|
2018-09-10 12:55:45 +00:00
|
|
|
]
|
|
|
|
args = [
|
|
|
|
"./" + rebase_path(
|
2018-09-11 13:22:30 +00:00
|
|
|
get_label_info(
|
2018-09-12 11:55:04 +00:00
|
|
|
":bytecode_builtins_list_generator($v8_generator_toolchain)",
|
2018-09-11 13:22:30 +00:00
|
|
|
"root_out_dir") + "/bytecode_builtins_list_generator",
|
2018-09-10 12:55:45 +00:00
|
|
|
root_build_dir),
|
2018-12-03 17:42:15 +00:00
|
|
|
rebase_path("$target_gen_dir/builtins-generated/bytecodes-builtins-list.h",
|
|
|
|
root_build_dir),
|
2018-09-10 12:55:45 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2018-03-20 10:16:14 +00:00
|
|
|
# Template to generate different V8 snapshots based on different runtime flags.
|
|
|
|
# Can be invoked with run_mksnapshot(<name>). The target will resolve to
|
|
|
|
# run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used.
|
2018-11-15 14:10:59 +00:00
|
|
|
# Otherwise files are suffixed, e.g. embedded_<name>.S and
|
2018-03-20 10:16:14 +00:00
|
|
|
# snapshot_blob_<name>.bin.
|
|
|
|
#
|
|
|
|
# The template exposes the variables:
|
|
|
|
# args: additional flags for mksnapshots
|
|
|
|
# embedded_suffix: a camel case suffix for method names in the embedded
|
|
|
|
# snapshot.
|
|
|
|
template("run_mksnapshot") {
|
|
|
|
name = target_name
|
|
|
|
if (name == "default") {
|
|
|
|
suffix = ""
|
|
|
|
} else {
|
|
|
|
suffix = "_$name"
|
|
|
|
}
|
|
|
|
action("run_mksnapshot_" + name) {
|
2017-11-20 08:12:49 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-06-03 06:50:46 +00:00
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
deps = [
|
|
|
|
":mksnapshot($v8_snapshot_toolchain)",
|
|
|
|
]
|
2014-06-03 06:50:46 +00:00
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
script = "tools/run.py"
|
2016-06-30 11:24:37 +00:00
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
sources = []
|
2014-06-03 06:50:46 +00:00
|
|
|
|
2018-03-13 14:04:27 +00:00
|
|
|
outputs = []
|
2018-03-09 09:29:10 +00:00
|
|
|
|
2018-03-26 07:34:41 +00:00
|
|
|
data = []
|
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
args = [
|
|
|
|
"./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
|
|
|
|
"root_out_dir") + "/mksnapshot",
|
|
|
|
root_build_dir),
|
|
|
|
"--turbo_instruction_scheduling",
|
2019-04-08 19:32:38 +00:00
|
|
|
|
|
|
|
# In cross builds, the snapshot may be generated for both the host and
|
|
|
|
# target toolchains. The same host binary is used to generate both, so
|
|
|
|
# mksnapshot needs to know which target OS to use at runtime. It's weird,
|
|
|
|
# but the target OS is really |current_os|.
|
2019-04-09 11:52:13 +00:00
|
|
|
"--target_os=$current_os",
|
2016-11-15 14:39:59 +00:00
|
|
|
]
|
|
|
|
|
2018-03-20 10:16:14 +00:00
|
|
|
args += invoker.args
|
|
|
|
|
2018-03-09 09:29:10 +00:00
|
|
|
if (v8_enable_embedded_builtins) {
|
2018-11-15 14:10:59 +00:00
|
|
|
outputs += [ "$target_gen_dir/embedded${suffix}.S" ]
|
2018-03-09 09:29:10 +00:00
|
|
|
args += [
|
|
|
|
"--embedded_src",
|
2018-11-15 14:10:59 +00:00
|
|
|
rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir),
|
2018-03-09 09:29:10 +00:00
|
|
|
]
|
2018-03-20 10:16:14 +00:00
|
|
|
if (invoker.embedded_variant != "") {
|
|
|
|
args += [
|
|
|
|
"--embedded_variant",
|
|
|
|
invoker.embedded_variant,
|
|
|
|
]
|
|
|
|
}
|
2018-03-09 09:29:10 +00:00
|
|
|
}
|
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
if (v8_random_seed != "0") {
|
|
|
|
args += [
|
|
|
|
"--random-seed",
|
|
|
|
v8_random_seed,
|
|
|
|
]
|
|
|
|
}
|
2017-05-23 09:47:29 +00:00
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
if (v8_os_page_size != "0") {
|
|
|
|
args += [
|
|
|
|
"--v8_os_page_size",
|
|
|
|
v8_os_page_size,
|
|
|
|
]
|
|
|
|
}
|
2016-06-30 11:24:37 +00:00
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
if (v8_use_external_startup_data) {
|
2018-03-20 10:16:14 +00:00
|
|
|
outputs += [ "$root_out_dir/snapshot_blob${suffix}.bin" ]
|
2018-03-26 07:34:41 +00:00
|
|
|
data += [ "$root_out_dir/snapshot_blob${suffix}.bin" ]
|
2017-11-20 08:12:49 +00:00
|
|
|
args += [
|
|
|
|
"--startup_blob",
|
2018-03-20 10:16:14 +00:00
|
|
|
rebase_path("$root_out_dir/snapshot_blob${suffix}.bin", root_build_dir),
|
2017-11-20 08:12:49 +00:00
|
|
|
]
|
2018-03-13 14:04:27 +00:00
|
|
|
} else {
|
2018-03-20 10:16:14 +00:00
|
|
|
outputs += [ "$target_gen_dir/snapshot${suffix}.cc" ]
|
2018-03-13 14:04:27 +00:00
|
|
|
args += [
|
|
|
|
"--startup_src",
|
2018-03-20 10:16:14 +00:00
|
|
|
rebase_path("$target_gen_dir/snapshot${suffix}.cc", root_build_dir),
|
2018-03-13 14:04:27 +00:00
|
|
|
]
|
2017-11-20 08:12:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (v8_embed_script != "") {
|
|
|
|
sources += [ v8_embed_script ]
|
|
|
|
args += [ rebase_path(v8_embed_script, root_build_dir) ]
|
|
|
|
}
|
|
|
|
|
2018-12-13 19:30:56 +00:00
|
|
|
if (v8_enable_snapshot_code_comments) {
|
|
|
|
args += [ "--code-comments" ]
|
|
|
|
}
|
|
|
|
|
2019-03-28 12:37:29 +00:00
|
|
|
if (v8_enable_snapshot_native_code_counters) {
|
|
|
|
args += [ "--native-code-counters" ]
|
|
|
|
} else {
|
|
|
|
# --native-code-counters is the default in debug mode so make sure we can
|
|
|
|
# unset it.
|
|
|
|
args += [ "--no-native-code-counters" ]
|
|
|
|
}
|
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
if (v8_enable_fast_mksnapshot) {
|
|
|
|
args += [
|
|
|
|
"--no-turbo-rewrite-far-jumps",
|
|
|
|
"--no-turbo-verify-allocation",
|
|
|
|
]
|
2018-06-28 09:23:06 +00:00
|
|
|
|
|
|
|
if (v8_enable_debugging_features && v8_enable_slow_dchecks) {
|
|
|
|
# mksnapshot only accepts this flag if ENABLE_SLOW_DCHECKS is defined.
|
|
|
|
args += [ "--no-enable-slow-asserts" ]
|
|
|
|
}
|
2017-11-20 08:12:49 +00:00
|
|
|
}
|
2017-08-24 13:14:44 +00:00
|
|
|
}
|
2014-06-03 06:50:46 +00:00
|
|
|
}
|
|
|
|
|
2018-03-20 10:16:14 +00:00
|
|
|
if (v8_use_snapshot) {
|
|
|
|
run_mksnapshot("default") {
|
|
|
|
args = []
|
|
|
|
if (v8_enable_embedded_builtins) {
|
|
|
|
embedded_variant = "Default"
|
|
|
|
}
|
|
|
|
}
|
2018-11-22 10:25:50 +00:00
|
|
|
if (emit_builtins_as_inline_asm) {
|
|
|
|
asm_to_inline_asm("default") {
|
|
|
|
args = []
|
|
|
|
}
|
|
|
|
}
|
2018-03-20 10:16:14 +00:00
|
|
|
if (v8_use_multi_snapshots) {
|
|
|
|
run_mksnapshot("trusted") {
|
|
|
|
args = [ "--no-untrusted-code-mitigations" ]
|
|
|
|
if (v8_enable_embedded_builtins) {
|
|
|
|
embedded_variant = "Trusted"
|
|
|
|
}
|
|
|
|
}
|
2018-11-22 10:25:50 +00:00
|
|
|
if (emit_builtins_as_inline_asm) {
|
|
|
|
asm_to_inline_asm("trusted") {
|
|
|
|
args = []
|
|
|
|
}
|
|
|
|
}
|
2018-03-20 10:16:14 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-06-30 14:22:55 +00:00
|
|
|
action("v8_dump_build_config") {
|
|
|
|
script = "tools/testrunner/utils/dump_build_config.py"
|
2016-07-01 05:26:58 +00:00
|
|
|
outputs = [
|
|
|
|
"$root_out_dir/v8_build_config.json",
|
|
|
|
]
|
2017-06-28 11:31:15 +00:00
|
|
|
is_gcov_coverage = v8_code_coverage && !is_clang
|
2016-06-30 14:22:55 +00:00
|
|
|
args = [
|
|
|
|
rebase_path("$root_out_dir/v8_build_config.json", root_build_dir),
|
2017-10-25 09:48:59 +00:00
|
|
|
"current_cpu=\"$current_cpu\"",
|
2016-06-30 14:22:55 +00:00
|
|
|
"dcheck_always_on=$dcheck_always_on",
|
2018-07-25 11:20:08 +00:00
|
|
|
"is_android=$is_android",
|
2016-06-30 14:22:55 +00:00
|
|
|
"is_asan=$is_asan",
|
|
|
|
"is_cfi=$is_cfi",
|
2019-02-27 13:36:17 +00:00
|
|
|
"is_clang=$is_clang",
|
2016-06-30 14:22:55 +00:00
|
|
|
"is_component_build=$is_component_build",
|
2018-04-06 10:24:41 +00:00
|
|
|
"is_debug=$v8_enable_debugging_features",
|
2017-06-28 11:31:15 +00:00
|
|
|
"is_gcov_coverage=$is_gcov_coverage",
|
2016-06-30 14:22:55 +00:00
|
|
|
"is_msan=$is_msan",
|
|
|
|
"is_tsan=$is_tsan",
|
2017-07-19 14:59:48 +00:00
|
|
|
"is_ubsan_vptr=$is_ubsan_vptr",
|
2016-06-30 14:22:55 +00:00
|
|
|
"target_cpu=\"$target_cpu\"",
|
2017-10-25 09:48:59 +00:00
|
|
|
"v8_current_cpu=\"$v8_current_cpu\"",
|
2016-06-30 14:22:55 +00:00
|
|
|
"v8_enable_i18n_support=$v8_enable_i18n_support",
|
2017-10-19 07:14:09 +00:00
|
|
|
"v8_enable_verify_predictable=$v8_enable_verify_predictable",
|
2016-06-30 14:22:55 +00:00
|
|
|
"v8_target_cpu=\"$v8_target_cpu\"",
|
|
|
|
"v8_use_snapshot=$v8_use_snapshot",
|
2018-10-10 08:46:40 +00:00
|
|
|
"v8_enable_embedded_builtins=$v8_enable_embedded_builtins",
|
2018-10-16 08:22:23 +00:00
|
|
|
"v8_enable_verify_csa=$v8_enable_verify_csa",
|
2018-10-19 13:34:53 +00:00
|
|
|
"v8_enable_lite_mode=$v8_enable_lite_mode",
|
2018-12-19 16:21:38 +00:00
|
|
|
"v8_enable_pointer_compression=$v8_enable_pointer_compression",
|
2016-07-01 05:26:58 +00:00
|
|
|
]
|
2018-01-29 10:24:31 +00:00
|
|
|
|
|
|
|
if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" ||
|
|
|
|
v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
|
|
|
|
args += [
|
|
|
|
"mips_arch_variant=\"$mips_arch_variant\"",
|
|
|
|
"mips_use_msa=$mips_use_msa",
|
|
|
|
]
|
|
|
|
}
|
2016-06-30 14:22:55 +00:00
|
|
|
}
|
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
###############################################################################
|
|
|
|
# Source Sets (aka static libraries)
|
|
|
|
#
|
|
|
|
|
2016-06-01 12:28:57 +00:00
|
|
|
source_set("v8_maybe_snapshot") {
|
|
|
|
if (v8_use_snapshot && v8_use_external_startup_data) {
|
2016-06-08 12:09:25 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_external_snapshot",
|
|
|
|
]
|
2016-06-01 12:28:57 +00:00
|
|
|
} else if (v8_use_snapshot) {
|
2016-06-08 12:09:25 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_snapshot",
|
|
|
|
]
|
2016-06-01 12:28:57 +00:00
|
|
|
} else {
|
2016-07-06 07:52:59 +00:00
|
|
|
# Ignore v8_use_external_startup_data setting if no snapshot is used.
|
2016-06-08 12:09:25 +00:00
|
|
|
public_deps = [
|
2017-09-06 10:48:08 +00:00
|
|
|
":v8_init",
|
2016-06-08 12:09:25 +00:00
|
|
|
":v8_nosnapshot",
|
|
|
|
]
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("v8_nosnapshot") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-05-05 11:06:26 +00:00
|
|
|
|
|
|
|
deps = [
|
2016-03-31 07:30:16 +00:00
|
|
|
":js2c_extras",
|
2019-04-09 12:34:36 +00:00
|
|
|
":torque_generated_initializers",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
|
2019-04-10 09:30:39 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_maybe_icu",
|
|
|
|
]
|
2019-04-09 12:34:36 +00:00
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
sources = [
|
2015-05-08 08:44:47 +00:00
|
|
|
"$target_gen_dir/extras-libraries.cc",
|
2018-03-09 09:29:10 +00:00
|
|
|
"src/snapshot/embedded-empty.cc",
|
2015-03-27 15:28:55 +00:00
|
|
|
"src/snapshot/snapshot-empty.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
2018-03-13 14:04:27 +00:00
|
|
|
if (v8_use_snapshot && !v8_use_external_startup_data) {
|
2017-11-20 08:12:49 +00:00
|
|
|
v8_source_set("v8_snapshot") {
|
|
|
|
# Only targets in this file and the top-level visibility target can
|
|
|
|
# depend on this.
|
|
|
|
visibility = [
|
|
|
|
":*",
|
|
|
|
"//:gn_visibility",
|
|
|
|
]
|
2014-06-03 06:50:46 +00:00
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
deps = [
|
|
|
|
":js2c_extras",
|
|
|
|
]
|
2019-04-09 12:34:36 +00:00
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
public_deps = [
|
|
|
|
# This should be public so downstream targets can declare the snapshot
|
|
|
|
# output file as their inputs.
|
2018-03-20 10:16:14 +00:00
|
|
|
":run_mksnapshot_default",
|
2019-04-10 09:30:39 +00:00
|
|
|
":v8_maybe_icu",
|
2017-11-20 08:12:49 +00:00
|
|
|
]
|
2014-06-03 06:50:46 +00:00
|
|
|
|
2018-05-01 07:24:55 +00:00
|
|
|
# Do not publicize any header to remove build dependency.
|
|
|
|
public = []
|
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
sources = [
|
|
|
|
"$target_gen_dir/extras-libraries.cc",
|
|
|
|
"$target_gen_dir/snapshot.cc",
|
|
|
|
"src/setup-isolate-deserialize.cc",
|
2017-08-09 08:11:21 +00:00
|
|
|
]
|
|
|
|
|
2018-11-22 10:25:50 +00:00
|
|
|
if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) {
|
|
|
|
deps += [ ":asm_to_inline_asm_default" ]
|
|
|
|
sources += [ "$target_gen_dir/embedded.cc" ]
|
|
|
|
} else if (v8_enable_embedded_builtins) {
|
2018-11-15 14:10:59 +00:00
|
|
|
sources += [ "$target_gen_dir/embedded.S" ]
|
2018-07-03 07:36:59 +00:00
|
|
|
} else {
|
|
|
|
sources += [ "src/snapshot/embedded-empty.cc" ]
|
2018-03-09 09:29:10 +00:00
|
|
|
}
|
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
}
|
2014-06-03 06:50:46 +00:00
|
|
|
}
|
|
|
|
|
2018-03-13 14:04:27 +00:00
|
|
|
if (v8_use_snapshot && v8_use_external_startup_data) {
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("v8_external_snapshot") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-06-23 13:52:17 +00:00
|
|
|
|
|
|
|
deps = [
|
2016-03-31 07:30:16 +00:00
|
|
|
":js2c_extras",
|
2014-06-23 13:52:17 +00:00
|
|
|
":v8_base",
|
2015-05-19 11:36:37 +00:00
|
|
|
]
|
|
|
|
public_deps = [
|
2014-06-23 13:52:17 +00:00
|
|
|
":natives_blob",
|
2018-03-20 10:16:14 +00:00
|
|
|
":run_mksnapshot_default",
|
2014-06-23 13:52:17 +00:00
|
|
|
]
|
|
|
|
|
2018-03-20 10:16:14 +00:00
|
|
|
if (v8_use_multi_snapshots) {
|
|
|
|
public_deps += [ ":run_mksnapshot_trusted" ]
|
|
|
|
}
|
|
|
|
|
2014-06-23 13:52:17 +00:00
|
|
|
sources = [
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/setup-isolate-deserialize.cc",
|
2015-03-27 15:28:55 +00:00
|
|
|
"src/snapshot/natives-external.cc",
|
|
|
|
"src/snapshot/snapshot-external.cc",
|
2014-06-23 13:52:17 +00:00
|
|
|
]
|
|
|
|
|
2018-05-01 07:24:55 +00:00
|
|
|
# Do not publicize any header to remove build dependency.
|
|
|
|
public = []
|
|
|
|
|
2018-11-22 10:25:50 +00:00
|
|
|
if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) {
|
|
|
|
deps += [ ":asm_to_inline_asm_default" ]
|
|
|
|
sources += [ "$target_gen_dir/embedded.cc" ]
|
|
|
|
|
|
|
|
if (v8_use_multi_snapshots) {
|
|
|
|
deps += [ ":asm_to_inline_asm_trusted" ]
|
|
|
|
sources += [ "$target_gen_dir/embedded_trusted.cc" ]
|
2019-01-23 17:06:04 +00:00
|
|
|
jumbo_excluded_sources = [ "$target_gen_dir/embedded_trusted.cc" ]
|
2018-11-22 10:25:50 +00:00
|
|
|
}
|
|
|
|
} else if (v8_enable_embedded_builtins) {
|
2018-11-15 14:10:59 +00:00
|
|
|
sources += [ "$target_gen_dir/embedded.S" ]
|
2018-03-22 08:59:32 +00:00
|
|
|
|
2018-03-20 10:16:14 +00:00
|
|
|
if (v8_use_multi_snapshots) {
|
2018-11-15 14:10:59 +00:00
|
|
|
sources += [ "$target_gen_dir/embedded_trusted.S" ]
|
2019-01-23 17:06:04 +00:00
|
|
|
jumbo_excluded_sources = [
|
|
|
|
# Duplicated symbols with embedded.S
|
|
|
|
"$target_gen_dir/embedded_trusted.S",
|
|
|
|
]
|
2018-03-20 10:16:14 +00:00
|
|
|
}
|
2018-07-03 07:36:59 +00:00
|
|
|
} else {
|
|
|
|
sources += [ "src/snapshot/embedded-empty.cc" ]
|
2018-03-09 09:29:10 +00:00
|
|
|
}
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2014-06-23 13:52:17 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-09-06 10:48:08 +00:00
|
|
|
v8_source_set("v8_initializers") {
|
2017-04-07 13:31:29 +00:00
|
|
|
visibility = [
|
|
|
|
":*",
|
|
|
|
"test/cctest:*",
|
|
|
|
]
|
2017-03-16 11:32:01 +00:00
|
|
|
|
|
|
|
deps = [
|
2018-05-04 13:18:37 +00:00
|
|
|
":torque_generated_initializers",
|
2019-02-13 10:54:08 +00:00
|
|
|
]
|
|
|
|
|
2017-03-16 11:32:01 +00:00
|
|
|
sources = [
|
|
|
|
### gcmole(all) ###
|
|
|
|
"src/builtins/builtins-arguments-gen.cc",
|
2017-03-21 11:17:41 +00:00
|
|
|
"src/builtins/builtins-arguments-gen.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-array-gen.cc",
|
2018-01-28 17:02:11 +00:00
|
|
|
"src/builtins/builtins-array-gen.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-async-function-gen.cc",
|
|
|
|
"src/builtins/builtins-async-gen.cc",
|
2017-03-21 11:17:41 +00:00
|
|
|
"src/builtins/builtins-async-gen.h",
|
[async-iteration] implement AsyncGenerator
- Introduce new struct AsyncGeneratorRequest, which holds
information pertinent to resuming execution of an
AsyncGenerator, such as the Promise associated with the async
generator request. It is intended to be used as a singly
linked list, and holds a pointer to the next item in te queue.
- Introduce JSAsyncGeneratorObject (subclass of
JSGeneratorObject), which includes several new internal fields
(`queue` which contains a singly linked list of
AsyncGeneratorRequest objects, and `await_input` which
contains the sent value from an Await expression (This is
necessary to prevent function.sent (used by yield*) from
having the sent value observably overwritten during
execution).
- Modify SuspendGenerator to accept a set of Flags, which
indicate whether the suspend is for a Yield or Await, and
whether it takes place on an async generator or ES6
generator.
- Introduce interpreter intrinsics and TF intrinsic lowering for
accessing the await input of an async generator
- Modify the JSGeneratorStore operator to understand whether or
not it's suspending for a normal yield, or an AsyncGenerator
Await. This ensures appropriate registers are stored.
- Add versions of ResumeGeneratorTrampoline which store the
input value in a different field depending on wether it's an
AsyncGenerator Await resume, or an ordinary resume. Also modifies
whether debug code will assert that the generator object is a
JSGeneratorObject or a JSAsyncGeneratorObject depending on the
resume type.
BUG=v8:5855
R=bmeurer@chromium.org, rmcilroy@chromium.org, jgruber@chromium.org,
littledan@chromium.org, neis@chromium.org
TBR=marja@chromium.org
Change-Id: I9d58df1d344465fc937fe7eed322424204497187
Reviewed-on: https://chromium-review.googlesource.com/446961
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44240}
2017-03-29 13:41:45 +00:00
|
|
|
"src/builtins/builtins-async-generator-gen.cc",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-async-iterator-gen.cc",
|
2018-12-07 19:50:26 +00:00
|
|
|
"src/builtins/builtins-bigint-gen.cc",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-boolean-gen.cc",
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/builtins/builtins-call-gen.cc",
|
2017-06-08 18:31:59 +00:00
|
|
|
"src/builtins/builtins-call-gen.h",
|
2017-05-23 09:06:51 +00:00
|
|
|
"src/builtins/builtins-collections-gen.cc",
|
2017-04-20 17:17:18 +00:00
|
|
|
"src/builtins/builtins-console-gen.cc",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-constructor-gen.cc",
|
2017-03-21 11:17:41 +00:00
|
|
|
"src/builtins/builtins-constructor-gen.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-constructor.h",
|
|
|
|
"src/builtins/builtins-conversion-gen.cc",
|
2018-06-06 12:30:08 +00:00
|
|
|
"src/builtins/builtins-data-view-gen.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-date-gen.cc",
|
2017-05-23 00:03:49 +00:00
|
|
|
"src/builtins/builtins-debug-gen.cc",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-function-gen.cc",
|
|
|
|
"src/builtins/builtins-generator-gen.cc",
|
|
|
|
"src/builtins/builtins-global-gen.cc",
|
|
|
|
"src/builtins/builtins-handler-gen.cc",
|
|
|
|
"src/builtins/builtins-ic-gen.cc",
|
|
|
|
"src/builtins/builtins-internal-gen.cc",
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/builtins/builtins-interpreter-gen.cc",
|
2017-05-05 15:59:08 +00:00
|
|
|
"src/builtins/builtins-intl-gen.cc",
|
2017-05-23 09:06:51 +00:00
|
|
|
"src/builtins/builtins-iterator-gen.cc",
|
|
|
|
"src/builtins/builtins-iterator-gen.h",
|
2018-06-07 15:21:27 +00:00
|
|
|
"src/builtins/builtins-lazy-gen.cc",
|
|
|
|
"src/builtins/builtins-lazy-gen.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-math-gen.cc",
|
2017-11-28 10:05:00 +00:00
|
|
|
"src/builtins/builtins-math-gen.h",
|
2018-11-09 09:28:42 +00:00
|
|
|
"src/builtins/builtins-microtask-queue-gen.cc",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-number-gen.cc",
|
|
|
|
"src/builtins/builtins-object-gen.cc",
|
|
|
|
"src/builtins/builtins-promise-gen.cc",
|
2017-03-21 11:17:41 +00:00
|
|
|
"src/builtins/builtins-promise-gen.h",
|
2017-07-10 11:42:33 +00:00
|
|
|
"src/builtins/builtins-proxy-gen.cc",
|
2017-08-16 12:33:07 +00:00
|
|
|
"src/builtins/builtins-proxy-gen.h",
|
2017-10-16 16:48:11 +00:00
|
|
|
"src/builtins/builtins-reflect-gen.cc",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-regexp-gen.cc",
|
|
|
|
"src/builtins/builtins-regexp-gen.h",
|
|
|
|
"src/builtins/builtins-sharedarraybuffer-gen.cc",
|
|
|
|
"src/builtins/builtins-string-gen.cc",
|
2017-05-15 19:42:35 +00:00
|
|
|
"src/builtins/builtins-string-gen.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-symbol-gen.cc",
|
2018-04-18 07:07:10 +00:00
|
|
|
"src/builtins/builtins-typed-array-gen.cc",
|
|
|
|
"src/builtins/builtins-typed-array-gen.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-utils-gen.h",
|
|
|
|
"src/builtins/builtins-wasm-gen.cc",
|
2018-02-05 16:10:42 +00:00
|
|
|
"src/builtins/growable-fixed-array-gen.cc",
|
|
|
|
"src/builtins/growable-fixed-array-gen.h",
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/builtins/setup-builtins-internal.cc",
|
2018-11-21 12:46:31 +00:00
|
|
|
"src/code-stub-assembler.cc",
|
|
|
|
"src/code-stub-assembler.h",
|
2017-09-06 10:48:08 +00:00
|
|
|
"src/heap/setup-heap-internal.cc",
|
2017-03-21 11:17:41 +00:00
|
|
|
"src/ic/accessor-assembler.cc",
|
|
|
|
"src/ic/accessor-assembler.h",
|
2017-03-22 17:37:08 +00:00
|
|
|
"src/ic/binary-op-assembler.cc",
|
|
|
|
"src/ic/binary-op-assembler.h",
|
2017-03-21 11:17:41 +00:00
|
|
|
"src/ic/keyed-store-generic.cc",
|
|
|
|
"src/ic/keyed-store-generic.h",
|
2017-03-21 12:33:32 +00:00
|
|
|
"src/interpreter/interpreter-assembler.cc",
|
|
|
|
"src/interpreter/interpreter-assembler.h",
|
2017-03-20 16:56:06 +00:00
|
|
|
"src/interpreter/interpreter-generator.cc",
|
|
|
|
"src/interpreter/interpreter-generator.h",
|
2017-03-21 12:33:32 +00:00
|
|
|
"src/interpreter/interpreter-intrinsics-generator.cc",
|
|
|
|
"src/interpreter/interpreter-intrinsics-generator.h",
|
2017-03-16 11:32:01 +00:00
|
|
|
]
|
|
|
|
|
2019-01-23 17:06:04 +00:00
|
|
|
jumbo_excluded_sources = [
|
|
|
|
# TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428
|
|
|
|
"src/builtins/builtins-async-iterator-gen.cc",
|
|
|
|
"src/builtins/builtins-async-generator-gen.cc",
|
2017-08-30 07:50:52 +00:00
|
|
|
|
2019-01-23 17:06:04 +00:00
|
|
|
# These source files take an unusually large amount of time to
|
|
|
|
# compile. Build them separately to avoid bottlenecks.
|
|
|
|
"src/builtins/builtins-regexp-gen.cc",
|
|
|
|
"src/code-stub-assembler.cc",
|
|
|
|
]
|
2017-08-09 08:11:21 +00:00
|
|
|
|
2017-03-21 11:17:41 +00:00
|
|
|
if (v8_current_cpu == "x86") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:ia32) ###
|
|
|
|
"src/builtins/ia32/builtins-ia32.cc",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "x64") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:x64) ###
|
|
|
|
"src/builtins/x64/builtins-x64.cc",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "arm") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:arm) ###
|
|
|
|
"src/builtins/arm/builtins-arm.cc",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "arm64") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:arm64) ###
|
|
|
|
"src/builtins/arm64/builtins-arm64.cc",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:mipsel) ###
|
|
|
|
"src/builtins/mips/builtins-mips.cc",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:mips64el) ###
|
|
|
|
"src/builtins/mips64/builtins-mips64.cc",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:ppc) ###
|
|
|
|
"src/builtins/ppc/builtins-ppc.cc",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:s390) ###
|
|
|
|
"src/builtins/s390/builtins-s390.cc",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-05-05 15:59:08 +00:00
|
|
|
if (!v8_enable_i18n_support) {
|
|
|
|
sources -= [ "src/builtins/builtins-intl-gen.cc" ]
|
|
|
|
}
|
|
|
|
|
2019-04-02 14:35:58 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2017-03-16 11:32:01 +00:00
|
|
|
}
|
|
|
|
|
2017-09-06 10:48:08 +00:00
|
|
|
v8_source_set("v8_init") {
|
2017-04-07 13:31:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
deps = [
|
2017-09-06 10:48:08 +00:00
|
|
|
":v8_initializers",
|
2017-04-07 13:31:29 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
### gcmole(all) ###
|
|
|
|
"src/setup-isolate-full.cc",
|
|
|
|
]
|
2019-04-10 09:30:39 +00:00
|
|
|
|
|
|
|
public_deps = [
|
|
|
|
":v8_maybe_icu",
|
|
|
|
]
|
2017-04-07 13:31:29 +00:00
|
|
|
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
}
|
|
|
|
|
2017-01-12 20:51:37 +00:00
|
|
|
# This is split out to be a non-code containing target that the Chromium browser
|
|
|
|
# DLL can depend upon to get only a version string.
|
2017-02-09 13:28:10 +00:00
|
|
|
v8_header_set("v8_version") {
|
2017-01-12 20:51:37 +00:00
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
|
|
|
|
sources = [
|
2017-04-27 15:14:41 +00:00
|
|
|
"include/v8-value-serializer-version.h",
|
2017-01-12 20:51:37 +00:00
|
|
|
"include/v8-version-string.h",
|
|
|
|
"include/v8-version.h",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-05-02 08:49:38 +00:00
|
|
|
# This is split out to be a non-code containing target that the Chromium browser
|
|
|
|
# can depend upon to get basic v8 types.
|
|
|
|
v8_header_set("v8_headers") {
|
|
|
|
configs = [ ":internal_config" ]
|
2019-02-11 16:11:08 +00:00
|
|
|
public_configs = [ ":v8_header_features" ]
|
2017-05-02 08:49:38 +00:00
|
|
|
|
|
|
|
sources = [
|
2018-09-07 09:03:35 +00:00
|
|
|
"include/v8-internal.h",
|
2017-05-02 08:49:38 +00:00
|
|
|
"include/v8.h",
|
|
|
|
"include/v8config.h",
|
|
|
|
]
|
|
|
|
|
2019-01-29 15:24:47 +00:00
|
|
|
sources += [
|
|
|
|
# The following headers cannot be platform-specific. The include validation
|
|
|
|
# of `gn gen $dir --check` requires all header files to be available on all
|
|
|
|
# platforms.
|
|
|
|
"include/v8-wasm-trap-handler-posix.h",
|
|
|
|
"include/v8-wasm-trap-handler-win.h",
|
|
|
|
]
|
2018-10-30 09:35:14 +00:00
|
|
|
|
2017-05-02 08:49:38 +00:00
|
|
|
deps = [
|
|
|
|
":v8_version",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2019-02-25 10:32:56 +00:00
|
|
|
# This is split out to share basic headers with Torque.
|
|
|
|
v8_header_set("v8_shared_internal_headers") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"src/globals.h",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":v8_headers",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2019-04-09 12:34:36 +00:00
|
|
|
v8_compiler_sources = [
|
|
|
|
"src/compiler/access-builder.cc",
|
|
|
|
"src/compiler/access-builder.h",
|
|
|
|
"src/compiler/access-info.cc",
|
|
|
|
"src/compiler/access-info.h",
|
|
|
|
"src/compiler/all-nodes.cc",
|
|
|
|
"src/compiler/all-nodes.h",
|
|
|
|
"src/compiler/allocation-builder-inl.h",
|
|
|
|
"src/compiler/allocation-builder.h",
|
|
|
|
"src/compiler/backend/code-generator-impl.h",
|
|
|
|
"src/compiler/backend/code-generator.cc",
|
|
|
|
"src/compiler/backend/code-generator.h",
|
|
|
|
"src/compiler/backend/frame-elider.cc",
|
|
|
|
"src/compiler/backend/frame-elider.h",
|
|
|
|
"src/compiler/backend/gap-resolver.cc",
|
|
|
|
"src/compiler/backend/gap-resolver.h",
|
|
|
|
"src/compiler/backend/instruction-codes.h",
|
|
|
|
"src/compiler/backend/instruction-scheduler.cc",
|
|
|
|
"src/compiler/backend/instruction-scheduler.h",
|
|
|
|
"src/compiler/backend/instruction-selector-impl.h",
|
|
|
|
"src/compiler/backend/instruction-selector.cc",
|
|
|
|
"src/compiler/backend/instruction-selector.h",
|
|
|
|
"src/compiler/backend/instruction.cc",
|
|
|
|
"src/compiler/backend/instruction.h",
|
|
|
|
"src/compiler/backend/jump-threading.cc",
|
|
|
|
"src/compiler/backend/jump-threading.h",
|
|
|
|
"src/compiler/backend/live-range-separator.cc",
|
|
|
|
"src/compiler/backend/live-range-separator.h",
|
|
|
|
"src/compiler/backend/move-optimizer.cc",
|
|
|
|
"src/compiler/backend/move-optimizer.h",
|
|
|
|
"src/compiler/backend/register-allocator-verifier.cc",
|
|
|
|
"src/compiler/backend/register-allocator-verifier.h",
|
|
|
|
"src/compiler/backend/register-allocator.cc",
|
|
|
|
"src/compiler/backend/register-allocator.h",
|
|
|
|
"src/compiler/backend/unwinding-info-writer.h",
|
|
|
|
"src/compiler/basic-block-instrumentor.cc",
|
|
|
|
"src/compiler/basic-block-instrumentor.h",
|
|
|
|
"src/compiler/branch-elimination.cc",
|
|
|
|
"src/compiler/branch-elimination.h",
|
|
|
|
"src/compiler/bytecode-analysis.cc",
|
|
|
|
"src/compiler/bytecode-analysis.h",
|
|
|
|
"src/compiler/bytecode-graph-builder.cc",
|
|
|
|
"src/compiler/bytecode-graph-builder.h",
|
|
|
|
"src/compiler/bytecode-liveness-map.cc",
|
|
|
|
"src/compiler/bytecode-liveness-map.h",
|
|
|
|
"src/compiler/c-linkage.cc",
|
|
|
|
"src/compiler/checkpoint-elimination.cc",
|
|
|
|
"src/compiler/checkpoint-elimination.h",
|
|
|
|
"src/compiler/code-assembler.cc",
|
|
|
|
"src/compiler/code-assembler.h",
|
|
|
|
"src/compiler/common-node-cache.cc",
|
|
|
|
"src/compiler/common-node-cache.h",
|
|
|
|
"src/compiler/common-operator-reducer.cc",
|
|
|
|
"src/compiler/common-operator-reducer.h",
|
|
|
|
"src/compiler/common-operator.cc",
|
|
|
|
"src/compiler/common-operator.h",
|
|
|
|
"src/compiler/compilation-dependencies.cc",
|
|
|
|
"src/compiler/compilation-dependencies.h",
|
|
|
|
"src/compiler/compiler-source-position-table.cc",
|
|
|
|
"src/compiler/compiler-source-position-table.h",
|
|
|
|
"src/compiler/constant-folding-reducer.cc",
|
|
|
|
"src/compiler/constant-folding-reducer.h",
|
|
|
|
"src/compiler/control-equivalence.cc",
|
|
|
|
"src/compiler/control-equivalence.h",
|
|
|
|
"src/compiler/control-flow-optimizer.cc",
|
|
|
|
"src/compiler/control-flow-optimizer.h",
|
|
|
|
"src/compiler/dead-code-elimination.cc",
|
|
|
|
"src/compiler/dead-code-elimination.h",
|
|
|
|
"src/compiler/diamond.h",
|
|
|
|
"src/compiler/effect-control-linearizer.cc",
|
|
|
|
"src/compiler/effect-control-linearizer.h",
|
|
|
|
"src/compiler/escape-analysis-reducer.cc",
|
|
|
|
"src/compiler/escape-analysis-reducer.h",
|
|
|
|
"src/compiler/escape-analysis.cc",
|
|
|
|
"src/compiler/escape-analysis.h",
|
|
|
|
"src/compiler/frame-states.cc",
|
|
|
|
"src/compiler/frame-states.h",
|
|
|
|
"src/compiler/frame.cc",
|
|
|
|
"src/compiler/frame.h",
|
|
|
|
"src/compiler/functional-list.h",
|
|
|
|
"src/compiler/graph-assembler.cc",
|
|
|
|
"src/compiler/graph-assembler.h",
|
|
|
|
"src/compiler/graph-reducer.cc",
|
|
|
|
"src/compiler/graph-reducer.h",
|
|
|
|
"src/compiler/graph-trimmer.cc",
|
|
|
|
"src/compiler/graph-trimmer.h",
|
|
|
|
"src/compiler/graph-visualizer.cc",
|
|
|
|
"src/compiler/graph-visualizer.h",
|
|
|
|
"src/compiler/graph.cc",
|
|
|
|
"src/compiler/graph.h",
|
|
|
|
"src/compiler/int64-lowering.cc",
|
|
|
|
"src/compiler/int64-lowering.h",
|
|
|
|
"src/compiler/js-call-reducer.cc",
|
|
|
|
"src/compiler/js-call-reducer.h",
|
|
|
|
"src/compiler/js-context-specialization.cc",
|
|
|
|
"src/compiler/js-context-specialization.h",
|
|
|
|
"src/compiler/js-create-lowering.cc",
|
|
|
|
"src/compiler/js-create-lowering.h",
|
|
|
|
"src/compiler/js-generic-lowering.cc",
|
|
|
|
"src/compiler/js-generic-lowering.h",
|
|
|
|
"src/compiler/js-graph.cc",
|
|
|
|
"src/compiler/js-graph.h",
|
|
|
|
"src/compiler/js-heap-broker.cc",
|
|
|
|
"src/compiler/js-heap-broker.h",
|
|
|
|
"src/compiler/js-heap-copy-reducer.cc",
|
|
|
|
"src/compiler/js-heap-copy-reducer.h",
|
|
|
|
"src/compiler/js-inlining-heuristic.cc",
|
|
|
|
"src/compiler/js-inlining-heuristic.h",
|
|
|
|
"src/compiler/js-inlining.cc",
|
|
|
|
"src/compiler/js-inlining.h",
|
|
|
|
"src/compiler/js-intrinsic-lowering.cc",
|
|
|
|
"src/compiler/js-intrinsic-lowering.h",
|
|
|
|
"src/compiler/js-native-context-specialization.cc",
|
|
|
|
"src/compiler/js-native-context-specialization.h",
|
|
|
|
"src/compiler/js-operator.cc",
|
|
|
|
"src/compiler/js-operator.h",
|
|
|
|
"src/compiler/js-type-hint-lowering.cc",
|
|
|
|
"src/compiler/js-type-hint-lowering.h",
|
|
|
|
"src/compiler/js-typed-lowering.cc",
|
|
|
|
"src/compiler/js-typed-lowering.h",
|
|
|
|
"src/compiler/linkage.cc",
|
|
|
|
"src/compiler/linkage.h",
|
|
|
|
"src/compiler/load-elimination.cc",
|
|
|
|
"src/compiler/load-elimination.h",
|
|
|
|
"src/compiler/loop-analysis.cc",
|
|
|
|
"src/compiler/loop-analysis.h",
|
|
|
|
"src/compiler/loop-peeling.cc",
|
|
|
|
"src/compiler/loop-peeling.h",
|
|
|
|
"src/compiler/loop-variable-optimizer.cc",
|
|
|
|
"src/compiler/loop-variable-optimizer.h",
|
|
|
|
"src/compiler/machine-graph-verifier.cc",
|
|
|
|
"src/compiler/machine-graph-verifier.h",
|
|
|
|
"src/compiler/machine-graph.cc",
|
|
|
|
"src/compiler/machine-graph.h",
|
|
|
|
"src/compiler/machine-operator-reducer.cc",
|
|
|
|
"src/compiler/machine-operator-reducer.h",
|
|
|
|
"src/compiler/machine-operator.cc",
|
|
|
|
"src/compiler/machine-operator.h",
|
|
|
|
"src/compiler/memory-optimizer.cc",
|
|
|
|
"src/compiler/memory-optimizer.h",
|
|
|
|
"src/compiler/node-aux-data.h",
|
|
|
|
"src/compiler/node-cache.cc",
|
|
|
|
"src/compiler/node-cache.h",
|
|
|
|
"src/compiler/node-marker.cc",
|
|
|
|
"src/compiler/node-marker.h",
|
|
|
|
"src/compiler/node-matchers.cc",
|
|
|
|
"src/compiler/node-matchers.h",
|
|
|
|
"src/compiler/node-origin-table.cc",
|
|
|
|
"src/compiler/node-origin-table.h",
|
|
|
|
"src/compiler/node-properties.cc",
|
|
|
|
"src/compiler/node-properties.h",
|
|
|
|
"src/compiler/node.cc",
|
|
|
|
"src/compiler/node.h",
|
|
|
|
"src/compiler/opcodes.cc",
|
|
|
|
"src/compiler/opcodes.h",
|
|
|
|
"src/compiler/operation-typer.cc",
|
|
|
|
"src/compiler/operation-typer.h",
|
|
|
|
"src/compiler/operator-properties.cc",
|
|
|
|
"src/compiler/operator-properties.h",
|
|
|
|
"src/compiler/operator.cc",
|
|
|
|
"src/compiler/operator.h",
|
|
|
|
"src/compiler/osr.cc",
|
|
|
|
"src/compiler/osr.h",
|
|
|
|
"src/compiler/per-isolate-compiler-cache.h",
|
|
|
|
"src/compiler/persistent-map.h",
|
|
|
|
"src/compiler/pipeline-statistics.cc",
|
|
|
|
"src/compiler/pipeline-statistics.h",
|
|
|
|
"src/compiler/pipeline.cc",
|
|
|
|
"src/compiler/pipeline.h",
|
|
|
|
"src/compiler/property-access-builder.cc",
|
|
|
|
"src/compiler/property-access-builder.h",
|
|
|
|
"src/compiler/raw-machine-assembler.cc",
|
|
|
|
"src/compiler/raw-machine-assembler.h",
|
|
|
|
"src/compiler/redundancy-elimination.cc",
|
|
|
|
"src/compiler/redundancy-elimination.h",
|
|
|
|
"src/compiler/refs-map.cc",
|
|
|
|
"src/compiler/refs-map.h",
|
|
|
|
"src/compiler/representation-change.cc",
|
|
|
|
"src/compiler/representation-change.h",
|
|
|
|
"src/compiler/schedule.cc",
|
|
|
|
"src/compiler/schedule.h",
|
|
|
|
"src/compiler/scheduler.cc",
|
|
|
|
"src/compiler/scheduler.h",
|
|
|
|
"src/compiler/select-lowering.cc",
|
|
|
|
"src/compiler/select-lowering.h",
|
|
|
|
"src/compiler/serializer-for-background-compilation.cc",
|
|
|
|
"src/compiler/serializer-for-background-compilation.h",
|
|
|
|
"src/compiler/simd-scalar-lowering.cc",
|
|
|
|
"src/compiler/simd-scalar-lowering.h",
|
|
|
|
"src/compiler/simplified-lowering.cc",
|
|
|
|
"src/compiler/simplified-lowering.h",
|
|
|
|
"src/compiler/simplified-operator-reducer.cc",
|
|
|
|
"src/compiler/simplified-operator-reducer.h",
|
|
|
|
"src/compiler/simplified-operator.cc",
|
|
|
|
"src/compiler/simplified-operator.h",
|
|
|
|
"src/compiler/state-values-utils.cc",
|
|
|
|
"src/compiler/state-values-utils.h",
|
|
|
|
"src/compiler/store-store-elimination.cc",
|
|
|
|
"src/compiler/store-store-elimination.h",
|
|
|
|
"src/compiler/type-cache.cc",
|
|
|
|
"src/compiler/type-cache.h",
|
|
|
|
"src/compiler/type-narrowing-reducer.cc",
|
|
|
|
"src/compiler/type-narrowing-reducer.h",
|
|
|
|
"src/compiler/typed-optimization.cc",
|
|
|
|
"src/compiler/typed-optimization.h",
|
|
|
|
"src/compiler/typer.cc",
|
|
|
|
"src/compiler/typer.h",
|
|
|
|
"src/compiler/types.cc",
|
|
|
|
"src/compiler/types.h",
|
|
|
|
"src/compiler/value-numbering-reducer.cc",
|
|
|
|
"src/compiler/value-numbering-reducer.h",
|
|
|
|
"src/compiler/verifier.cc",
|
|
|
|
"src/compiler/verifier.h",
|
|
|
|
"src/compiler/wasm-compiler.cc",
|
|
|
|
"src/compiler/wasm-compiler.h",
|
|
|
|
"src/compiler/zone-stats.cc",
|
|
|
|
"src/compiler/zone-stats.h",
|
|
|
|
]
|
|
|
|
|
|
|
|
# The src/compiler files with optimizations.
|
|
|
|
v8_source_set("v8_compiler_opt") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
sources = v8_compiler_sources
|
|
|
|
|
|
|
|
public_deps = [
|
|
|
|
":generate_bytecode_builtins_list",
|
|
|
|
":run_torque",
|
2019-04-10 09:30:39 +00:00
|
|
|
":v8_maybe_icu",
|
2019-04-09 12:34:36 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) {
|
|
|
|
# The :no_optimize config is added to v8_add_configs in v8.gni.
|
|
|
|
remove_configs = [ "//build/config/compiler:no_optimize" ]
|
|
|
|
configs = [ ":always_optimize" ]
|
|
|
|
} else {
|
|
|
|
# Without this else branch, gn fails to generate build files for non-debug
|
|
|
|
# builds (because we try to remove a config that is not present).
|
|
|
|
# So we include it, even if this config is not used outside of debug builds.
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
# The src/compiler files with default optimization behavior.
|
|
|
|
v8_source_set("v8_compiler") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
sources = v8_compiler_sources
|
|
|
|
|
|
|
|
public_deps = [
|
|
|
|
":generate_bytecode_builtins_list",
|
|
|
|
":run_torque",
|
2019-04-10 09:30:39 +00:00
|
|
|
":v8_maybe_icu",
|
2019-04-09 12:34:36 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
group("v8_compiler_for_mksnapshot") {
|
|
|
|
if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) {
|
|
|
|
deps = [
|
|
|
|
":v8_compiler_opt",
|
|
|
|
]
|
|
|
|
} else {
|
|
|
|
deps = [
|
|
|
|
":v8_compiler",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("v8_base_without_compiler") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-05-05 11:06:26 +00:00
|
|
|
|
2017-06-13 14:21:07 +00:00
|
|
|
# Split static libraries on windows into two.
|
|
|
|
split_count = 2
|
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
sources = [
|
2016-05-24 12:46:58 +00:00
|
|
|
"//base/trace_event/common/trace_event_common.h",
|
2016-09-21 11:44:10 +00:00
|
|
|
|
|
|
|
### gcmole(all) ###
|
2018-09-10 12:55:45 +00:00
|
|
|
"$target_gen_dir/builtins-generated/bytecodes-builtins-list.h",
|
2017-03-31 08:24:34 +00:00
|
|
|
"include/v8-inspector-protocol.h",
|
|
|
|
"include/v8-inspector.h",
|
2018-09-07 09:03:35 +00:00
|
|
|
"include/v8-internal.h",
|
2015-06-27 19:39:42 +00:00
|
|
|
"include/v8-platform.h",
|
|
|
|
"include/v8-profiler.h",
|
|
|
|
"include/v8-testing.h",
|
|
|
|
"include/v8-util.h",
|
2018-10-26 11:04:26 +00:00
|
|
|
"include/v8-wasm-trap-handler-posix.h",
|
2015-06-27 19:39:42 +00:00
|
|
|
"include/v8.h",
|
|
|
|
"include/v8config.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/accessors.cc",
|
|
|
|
"src/accessors.h",
|
2015-10-23 08:28:25 +00:00
|
|
|
"src/address-map.cc",
|
|
|
|
"src/address-map.h",
|
2018-09-12 10:35:23 +00:00
|
|
|
"src/allocation-site-scopes-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/allocation-site-scopes.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/allocation.cc",
|
|
|
|
"src/allocation.h",
|
2016-06-07 09:48:04 +00:00
|
|
|
"src/api-arguments-inl.h",
|
2018-07-23 12:37:45 +00:00
|
|
|
"src/api-arguments.cc",
|
2016-03-10 12:14:46 +00:00
|
|
|
"src/api-arguments.h",
|
2015-02-04 13:01:34 +00:00
|
|
|
"src/api-natives.cc",
|
|
|
|
"src/api-natives.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/api.cc",
|
|
|
|
"src/api.h",
|
2018-08-02 14:10:40 +00:00
|
|
|
"src/arguments-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arguments.cc",
|
|
|
|
"src/arguments.h",
|
2018-05-07 13:33:53 +00:00
|
|
|
"src/asan.h",
|
2016-07-01 05:26:58 +00:00
|
|
|
"src/asmjs/asm-js.cc",
|
|
|
|
"src/asmjs/asm-js.h",
|
2017-03-16 18:10:45 +00:00
|
|
|
"src/asmjs/asm-names.h",
|
2017-03-24 05:53:50 +00:00
|
|
|
"src/asmjs/asm-parser.cc",
|
|
|
|
"src/asmjs/asm-parser.h",
|
2017-03-16 18:10:45 +00:00
|
|
|
"src/asmjs/asm-scanner.cc",
|
|
|
|
"src/asmjs/asm-scanner.h",
|
2016-07-01 05:26:58 +00:00
|
|
|
"src/asmjs/asm-types.cc",
|
|
|
|
"src/asmjs/asm-types.h",
|
2018-04-27 12:59:22 +00:00
|
|
|
"src/assembler-arch.h",
|
2016-12-20 22:55:51 +00:00
|
|
|
"src/assembler-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/assembler.cc",
|
|
|
|
"src/assembler.h",
|
|
|
|
"src/assert-scope.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/assert-scope.h",
|
2016-11-28 11:40:22 +00:00
|
|
|
"src/ast/ast-function-literal-id-reindexer.cc",
|
|
|
|
"src/ast/ast-function-literal-id-reindexer.h",
|
2017-07-12 13:06:09 +00:00
|
|
|
"src/ast/ast-source-ranges.h",
|
2016-07-25 08:25:49 +00:00
|
|
|
"src/ast/ast-traversal-visitor.h",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/ast/ast-value-factory.cc",
|
|
|
|
"src/ast/ast-value-factory.h",
|
|
|
|
"src/ast/ast.cc",
|
|
|
|
"src/ast/ast.h",
|
|
|
|
"src/ast/modules.cc",
|
|
|
|
"src/ast/modules.h",
|
|
|
|
"src/ast/prettyprinter.cc",
|
|
|
|
"src/ast/prettyprinter.h",
|
|
|
|
"src/ast/scopes.cc",
|
|
|
|
"src/ast/scopes.h",
|
2018-12-03 14:34:35 +00:00
|
|
|
"src/ast/source-range-ast-visitor.cc",
|
|
|
|
"src/ast/source-range-ast-visitor.h",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/ast/variables.cc",
|
|
|
|
"src/ast/variables.h",
|
2014-09-24 07:08:27 +00:00
|
|
|
"src/bailout-reason.cc",
|
|
|
|
"src/bailout-reason.h",
|
2014-09-29 07:29:14 +00:00
|
|
|
"src/basic-block-profiler.cc",
|
|
|
|
"src/basic-block-profiler.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/bignum-dtoa.cc",
|
|
|
|
"src/bignum-dtoa.h",
|
|
|
|
"src/bignum.cc",
|
|
|
|
"src/bignum.h",
|
2014-10-31 10:44:04 +00:00
|
|
|
"src/bit-vector.cc",
|
|
|
|
"src/bit-vector.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/bootstrapper.cc",
|
|
|
|
"src/bootstrapper.h",
|
2017-07-20 09:41:09 +00:00
|
|
|
"src/boxed-float.h",
|
2016-07-25 19:15:01 +00:00
|
|
|
"src/builtins/builtins-api.cc",
|
2016-07-18 13:12:05 +00:00
|
|
|
"src/builtins/builtins-array.cc",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-arraybuffer.cc",
|
2017-09-20 05:32:15 +00:00
|
|
|
"src/builtins/builtins-bigint.cc",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-boolean.cc",
|
2016-07-25 19:15:01 +00:00
|
|
|
"src/builtins/builtins-call.cc",
|
2016-07-22 10:12:24 +00:00
|
|
|
"src/builtins/builtins-callsite.cc",
|
2017-06-08 19:13:17 +00:00
|
|
|
"src/builtins/builtins-collections.cc",
|
2017-04-18 20:50:30 +00:00
|
|
|
"src/builtins/builtins-console.cc",
|
2016-12-28 11:43:16 +00:00
|
|
|
"src/builtins/builtins-constructor.h",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-dataview.cc",
|
|
|
|
"src/builtins/builtins-date.cc",
|
2017-03-29 09:56:08 +00:00
|
|
|
"src/builtins/builtins-definitions.h",
|
2017-03-20 10:55:37 +00:00
|
|
|
"src/builtins/builtins-descriptors.h",
|
2016-07-20 13:02:36 +00:00
|
|
|
"src/builtins/builtins-error.cc",
|
2019-01-07 05:08:08 +00:00
|
|
|
"src/builtins/builtins-extras-utils.cc",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-function.cc",
|
|
|
|
"src/builtins/builtins-global.cc",
|
|
|
|
"src/builtins/builtins-internal.cc",
|
2017-03-22 23:06:36 +00:00
|
|
|
"src/builtins/builtins-intl.cc",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-json.cc",
|
|
|
|
"src/builtins/builtins-math.cc",
|
|
|
|
"src/builtins/builtins-number.cc",
|
|
|
|
"src/builtins/builtins-object.cc",
|
2017-07-17 19:14:20 +00:00
|
|
|
"src/builtins/builtins-promise.cc",
|
2018-12-13 09:46:59 +00:00
|
|
|
"src/builtins/builtins-promise.h",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-reflect.cc",
|
2016-09-30 07:24:20 +00:00
|
|
|
"src/builtins/builtins-regexp.cc",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-sharedarraybuffer.cc",
|
|
|
|
"src/builtins/builtins-string.cc",
|
|
|
|
"src/builtins/builtins-symbol.cc",
|
2018-07-18 18:08:21 +00:00
|
|
|
"src/builtins/builtins-trace.cc",
|
2018-04-18 07:07:10 +00:00
|
|
|
"src/builtins/builtins-typed-array.cc",
|
2018-08-02 14:10:40 +00:00
|
|
|
"src/builtins/builtins-utils-inl.h",
|
2016-07-18 13:12:05 +00:00
|
|
|
"src/builtins/builtins-utils.h",
|
2018-10-09 12:08:23 +00:00
|
|
|
"src/builtins/builtins-weak-refs.cc",
|
2016-07-14 06:26:03 +00:00
|
|
|
"src/builtins/builtins.cc",
|
|
|
|
"src/builtins/builtins.h",
|
2018-02-21 14:16:10 +00:00
|
|
|
"src/builtins/constants-table-builder.cc",
|
|
|
|
"src/builtins/constants-table-builder.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/cached-powers.cc",
|
|
|
|
"src/cached-powers.h",
|
2017-03-16 14:22:12 +00:00
|
|
|
"src/callable.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/cancelable-task.cc",
|
|
|
|
"src/cancelable-task.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/char-predicates-inl.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/char-predicates.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/char-predicates.h",
|
|
|
|
"src/checks.h",
|
2018-12-13 19:30:56 +00:00
|
|
|
"src/code-comments.cc",
|
|
|
|
"src/code-comments.h",
|
2019-01-29 16:18:29 +00:00
|
|
|
"src/code-desc.cc",
|
|
|
|
"src/code-desc.h",
|
2016-06-15 13:22:39 +00:00
|
|
|
"src/code-events.h",
|
2014-09-11 13:18:58 +00:00
|
|
|
"src/code-factory.cc",
|
|
|
|
"src/code-factory.h",
|
2018-04-18 09:45:35 +00:00
|
|
|
"src/code-reference.cc",
|
|
|
|
"src/code-reference.h",
|
2018-07-12 11:40:37 +00:00
|
|
|
"src/code-tracer.h",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/collector.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/compilation-cache.cc",
|
|
|
|
"src/compilation-cache.h",
|
2014-10-23 09:14:35 +00:00
|
|
|
"src/compilation-statistics.cc",
|
|
|
|
"src/compilation-statistics.h",
|
2016-12-12 15:35:41 +00:00
|
|
|
"src/compiler-dispatcher/compiler-dispatcher.cc",
|
|
|
|
"src/compiler-dispatcher/compiler-dispatcher.h",
|
2016-07-20 12:53:33 +00:00
|
|
|
"src/compiler-dispatcher/optimizing-compile-dispatcher.cc",
|
|
|
|
"src/compiler-dispatcher/optimizing-compile-dispatcher.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler.cc",
|
|
|
|
"src/compiler.h",
|
2018-10-19 10:17:59 +00:00
|
|
|
"src/constant-pool.cc",
|
|
|
|
"src/constant-pool.h",
|
2018-10-24 22:52:04 +00:00
|
|
|
"src/constants-arch.h",
|
2015-09-01 09:25:19 +00:00
|
|
|
"src/contexts-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/contexts.cc",
|
|
|
|
"src/contexts.h",
|
|
|
|
"src/conversions-inl.h",
|
|
|
|
"src/conversions.cc",
|
|
|
|
"src/conversions.h",
|
2019-03-28 12:37:29 +00:00
|
|
|
"src/counters-definitions.h",
|
2016-05-11 12:59:46 +00:00
|
|
|
"src/counters-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/counters.cc",
|
|
|
|
"src/counters.h",
|
Reland "[assembler] Split out CPUFeatures into its own file"
This is a reland of 3ad101f5bf9b30bd4378e1643fd86cc4c61d3aa9
Original change's description:
> [assembler] Split out CPUFeatures into its own file
>
> This reduces the preprocessor expanded source size by 84,675 LoC:
>
> gen ( 20 files): 71,349 to 1,523,934 ( 21x)
> src ( 624 files): 367,410 to 53,253,894 ( 145x)
> test ( 392 files): 490,503 to 37,436,176 ( 76x)
> third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
> total ( 1520 files): 1,183,031 to 102,736,424 ( 87x)
>
> to
>
> gen ( 20 files): 71,349 to 1,523,794 ( 21x)
> src ( 624 files): 367,411 to 53,186,896 ( 145x)
> test ( 392 files): 490,504 to 37,418,639 ( 76x)
> third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
> total ( 1520 files): 1,183,033 to 102,651,749 ( 87x)
>
>
> Change-Id: Ia8a79092051a42815b65e86a0784297915368c9b
> Reviewed-on: https://chromium-review.googlesource.com/c/1291471
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58266}
TBR=marja@chromium.org,clemensh@chromium.org,ulan@chromium.org
Change-Id: I5b857666508b1c80dcadd0b470aada37dd49077e
Reviewed-on: https://chromium-review.googlesource.com/c/1379872
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58278}
2018-12-17 10:32:43 +00:00
|
|
|
"src/cpu-features.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/date.cc",
|
|
|
|
"src/date.h",
|
|
|
|
"src/dateparser-inl.h",
|
|
|
|
"src/dateparser.cc",
|
|
|
|
"src/dateparser.h",
|
2017-02-09 19:00:49 +00:00
|
|
|
"src/debug/debug-coverage.cc",
|
|
|
|
"src/debug/debug-coverage.h",
|
2015-08-04 12:08:56 +00:00
|
|
|
"src/debug/debug-evaluate.cc",
|
|
|
|
"src/debug/debug-evaluate.h",
|
|
|
|
"src/debug/debug-frames.cc",
|
|
|
|
"src/debug/debug-frames.h",
|
2016-10-18 15:14:56 +00:00
|
|
|
"src/debug/debug-interface.h",
|
2018-10-31 16:16:39 +00:00
|
|
|
"src/debug/debug-property-iterator.cc",
|
|
|
|
"src/debug/debug-property-iterator.h",
|
2017-07-27 03:58:01 +00:00
|
|
|
"src/debug/debug-scope-iterator.cc",
|
|
|
|
"src/debug/debug-scope-iterator.h",
|
2015-08-04 12:08:56 +00:00
|
|
|
"src/debug/debug-scopes.cc",
|
|
|
|
"src/debug/debug-scopes.h",
|
2017-07-27 03:58:01 +00:00
|
|
|
"src/debug/debug-stack-trace-iterator.cc",
|
|
|
|
"src/debug/debug-stack-trace-iterator.h",
|
2017-09-08 10:51:50 +00:00
|
|
|
"src/debug/debug-type-profile.cc",
|
|
|
|
"src/debug/debug-type-profile.h",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/debug.cc",
|
|
|
|
"src/debug/debug.h",
|
2016-12-05 13:32:05 +00:00
|
|
|
"src/debug/interface-types.h",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/liveedit.cc",
|
|
|
|
"src/debug/liveedit.h",
|
2016-07-18 09:23:28 +00:00
|
|
|
"src/deoptimize-reason.cc",
|
|
|
|
"src/deoptimize-reason.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/deoptimizer.cc",
|
|
|
|
"src/deoptimizer.h",
|
2018-11-12 05:03:41 +00:00
|
|
|
"src/detachable-vector.cc",
|
2017-09-28 08:10:43 +00:00
|
|
|
"src/detachable-vector.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/disasm.h",
|
|
|
|
"src/disassembler.cc",
|
|
|
|
"src/disassembler.h",
|
|
|
|
"src/diy-fp.cc",
|
|
|
|
"src/diy-fp.h",
|
|
|
|
"src/double.h",
|
|
|
|
"src/dtoa.cc",
|
|
|
|
"src/dtoa.h",
|
2016-06-27 15:06:32 +00:00
|
|
|
"src/eh-frame.cc",
|
|
|
|
"src/eh-frame.h",
|
2018-07-23 12:37:45 +00:00
|
|
|
"src/elements-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/elements-kind.cc",
|
|
|
|
"src/elements-kind.h",
|
|
|
|
"src/elements.cc",
|
|
|
|
"src/elements.h",
|
|
|
|
"src/execution.cc",
|
|
|
|
"src/execution.h",
|
|
|
|
"src/extensions/externalize-string-extension.cc",
|
|
|
|
"src/extensions/externalize-string-extension.h",
|
|
|
|
"src/extensions/free-buffer-extension.cc",
|
|
|
|
"src/extensions/free-buffer-extension.h",
|
|
|
|
"src/extensions/gc-extension.cc",
|
|
|
|
"src/extensions/gc-extension.h",
|
2016-04-27 11:10:41 +00:00
|
|
|
"src/extensions/ignition-statistics-extension.cc",
|
|
|
|
"src/extensions/ignition-statistics-extension.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/extensions/statistics-extension.cc",
|
|
|
|
"src/extensions/statistics-extension.h",
|
|
|
|
"src/extensions/trigger-failure-extension.cc",
|
|
|
|
"src/extensions/trigger-failure-extension.h",
|
2016-03-17 13:14:11 +00:00
|
|
|
"src/external-reference-table.cc",
|
|
|
|
"src/external-reference-table.h",
|
2018-03-09 11:57:08 +00:00
|
|
|
"src/external-reference.cc",
|
|
|
|
"src/external-reference.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/fast-dtoa.cc",
|
|
|
|
"src/fast-dtoa.h",
|
2017-02-07 14:05:02 +00:00
|
|
|
"src/feedback-vector-inl.h",
|
|
|
|
"src/feedback-vector.cc",
|
|
|
|
"src/feedback-vector.h",
|
2014-06-11 08:31:13 +00:00
|
|
|
"src/field-index-inl.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/field-index.h",
|
2016-02-16 10:22:23 +00:00
|
|
|
"src/field-type.cc",
|
|
|
|
"src/field-type.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/fixed-dtoa.cc",
|
|
|
|
"src/fixed-dtoa.h",
|
|
|
|
"src/flag-definitions.h",
|
|
|
|
"src/flags.cc",
|
|
|
|
"src/flags.h",
|
2019-02-06 15:30:18 +00:00
|
|
|
"src/flush-instruction-cache.cc",
|
|
|
|
"src/flush-instruction-cache.h",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/frame-constants.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/frames-inl.h",
|
|
|
|
"src/frames.cc",
|
|
|
|
"src/frames.h",
|
2019-01-28 10:07:55 +00:00
|
|
|
"src/function-kind.h",
|
2015-07-17 17:11:32 +00:00
|
|
|
"src/futex-emulation.cc",
|
|
|
|
"src/futex-emulation.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/gdb-jit.cc",
|
|
|
|
"src/gdb-jit.h",
|
|
|
|
"src/global-handles.cc",
|
|
|
|
"src/global-handles.h",
|
2018-02-27 09:23:48 +00:00
|
|
|
"src/handler-table.cc",
|
|
|
|
"src/handler-table.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/handles-inl.h",
|
|
|
|
"src/handles.cc",
|
|
|
|
"src/handles.h",
|
2019-02-14 21:10:30 +00:00
|
|
|
"src/hash-seed-inl.h",
|
2016-01-26 09:23:11 +00:00
|
|
|
"src/heap-symbols.h",
|
2017-11-20 16:47:13 +00:00
|
|
|
"src/heap/array-buffer-collector.cc",
|
|
|
|
"src/heap/array-buffer-collector.h",
|
2016-06-15 16:41:23 +00:00
|
|
|
"src/heap/array-buffer-tracker-inl.h",
|
2015-09-07 19:38:12 +00:00
|
|
|
"src/heap/array-buffer-tracker.cc",
|
|
|
|
"src/heap/array-buffer-tracker.h",
|
2017-08-30 11:09:09 +00:00
|
|
|
"src/heap/barrier.h",
|
2016-06-30 13:21:03 +00:00
|
|
|
"src/heap/code-stats.cc",
|
|
|
|
"src/heap/code-stats.h",
|
2017-03-06 15:19:36 +00:00
|
|
|
"src/heap/concurrent-marking.cc",
|
|
|
|
"src/heap/concurrent-marking.h",
|
2016-12-20 09:35:05 +00:00
|
|
|
"src/heap/embedder-tracing.cc",
|
|
|
|
"src/heap/embedder-tracing.h",
|
2018-04-09 19:11:22 +00:00
|
|
|
"src/heap/factory-inl.h",
|
|
|
|
"src/heap/factory.cc",
|
|
|
|
"src/heap/factory.h",
|
2014-08-20 10:33:03 +00:00
|
|
|
"src/heap/gc-idle-time-handler.cc",
|
|
|
|
"src/heap/gc-idle-time-handler.h",
|
2014-08-05 08:18:22 +00:00
|
|
|
"src/heap/gc-tracer.cc",
|
|
|
|
"src/heap/gc-tracer.h",
|
2018-06-07 12:00:16 +00:00
|
|
|
"src/heap/heap-controller.cc",
|
|
|
|
"src/heap/heap-controller.h",
|
2014-08-05 08:18:22 +00:00
|
|
|
"src/heap/heap-inl.h",
|
2018-07-24 20:13:40 +00:00
|
|
|
"src/heap/heap-write-barrier-inl.h",
|
|
|
|
"src/heap/heap-write-barrier.h",
|
2014-08-05 08:18:22 +00:00
|
|
|
"src/heap/heap.cc",
|
|
|
|
"src/heap/heap.h",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/heap/incremental-marking-inl.h",
|
2015-09-08 15:54:24 +00:00
|
|
|
"src/heap/incremental-marking-job.cc",
|
|
|
|
"src/heap/incremental-marking-job.h",
|
2014-08-05 08:18:22 +00:00
|
|
|
"src/heap/incremental-marking.cc",
|
|
|
|
"src/heap/incremental-marking.h",
|
2017-08-02 17:27:11 +00:00
|
|
|
"src/heap/invalidated-slots-inl.h",
|
|
|
|
"src/heap/invalidated-slots.cc",
|
|
|
|
"src/heap/invalidated-slots.h",
|
2018-02-06 16:20:46 +00:00
|
|
|
"src/heap/item-parallel-job.cc",
|
2017-05-16 20:57:05 +00:00
|
|
|
"src/heap/item-parallel-job.h",
|
2018-07-27 07:38:53 +00:00
|
|
|
"src/heap/local-allocator-inl.h",
|
2017-07-17 11:33:28 +00:00
|
|
|
"src/heap/local-allocator.h",
|
2014-08-05 08:18:22 +00:00
|
|
|
"src/heap/mark-compact-inl.h",
|
|
|
|
"src/heap/mark-compact.cc",
|
|
|
|
"src/heap/mark-compact.h",
|
2017-06-12 14:10:53 +00:00
|
|
|
"src/heap/marking.cc",
|
2016-07-12 15:08:55 +00:00
|
|
|
"src/heap/marking.h",
|
2015-07-07 11:37:44 +00:00
|
|
|
"src/heap/memory-reducer.cc",
|
|
|
|
"src/heap/memory-reducer.h",
|
2015-09-02 16:43:21 +00:00
|
|
|
"src/heap/object-stats.cc",
|
|
|
|
"src/heap/object-stats.h",
|
2014-08-07 12:21:01 +00:00
|
|
|
"src/heap/objects-visiting-inl.h",
|
|
|
|
"src/heap/objects-visiting.cc",
|
|
|
|
"src/heap/objects-visiting.h",
|
2019-02-28 16:07:25 +00:00
|
|
|
"src/heap/read-only-heap.cc",
|
|
|
|
"src/heap/read-only-heap.h",
|
2016-02-16 12:34:30 +00:00
|
|
|
"src/heap/remembered-set.h",
|
2015-09-25 14:49:07 +00:00
|
|
|
"src/heap/scavenge-job.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/heap/scavenge-job.h",
|
2015-09-14 11:44:20 +00:00
|
|
|
"src/heap/scavenger-inl.h",
|
|
|
|
"src/heap/scavenger.cc",
|
|
|
|
"src/heap/scavenger.h",
|
2018-11-21 10:34:07 +00:00
|
|
|
"src/heap/slot-set.cc",
|
2016-02-08 08:51:02 +00:00
|
|
|
"src/heap/slot-set.h",
|
2014-08-05 08:18:22 +00:00
|
|
|
"src/heap/spaces-inl.h",
|
|
|
|
"src/heap/spaces.cc",
|
|
|
|
"src/heap/spaces.h",
|
2018-07-27 11:13:58 +00:00
|
|
|
"src/heap/store-buffer-inl.h",
|
2014-08-11 14:22:24 +00:00
|
|
|
"src/heap/store-buffer.cc",
|
|
|
|
"src/heap/store-buffer.h",
|
2017-12-06 17:35:07 +00:00
|
|
|
"src/heap/stress-marking-observer.cc",
|
|
|
|
"src/heap/stress-marking-observer.h",
|
2017-12-07 11:51:50 +00:00
|
|
|
"src/heap/stress-scavenge-observer.cc",
|
|
|
|
"src/heap/stress-scavenge-observer.h",
|
2017-11-27 17:29:51 +00:00
|
|
|
"src/heap/sweeper.cc",
|
|
|
|
"src/heap/sweeper.h",
|
2017-06-23 10:44:53 +00:00
|
|
|
"src/heap/worklist.h",
|
2014-08-22 14:36:54 +00:00
|
|
|
"src/ic/call-optimization.cc",
|
|
|
|
"src/ic/call-optimization.h",
|
2016-10-14 12:37:09 +00:00
|
|
|
"src/ic/handler-configuration-inl.h",
|
2017-07-28 07:01:59 +00:00
|
|
|
"src/ic/handler-configuration.cc",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/ic/handler-configuration.h",
|
2014-08-22 11:43:39 +00:00
|
|
|
"src/ic/ic-inl.h",
|
2016-12-07 16:58:24 +00:00
|
|
|
"src/ic/ic-stats.cc",
|
|
|
|
"src/ic/ic-stats.h",
|
2014-08-22 11:43:39 +00:00
|
|
|
"src/ic/ic.cc",
|
|
|
|
"src/ic/ic.h",
|
|
|
|
"src/ic/stub-cache.cc",
|
|
|
|
"src/ic/stub-cache.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/icu_util.cc",
|
|
|
|
"src/icu_util.h",
|
2015-08-28 13:00:59 +00:00
|
|
|
"src/identity-map.cc",
|
|
|
|
"src/identity-map.h",
|
2014-08-29 10:40:02 +00:00
|
|
|
"src/interface-descriptors.cc",
|
|
|
|
"src/interface-descriptors.h",
|
2017-06-19 13:13:04 +00:00
|
|
|
"src/interpreter/block-coverage-builder.h",
|
2016-11-21 17:18:20 +00:00
|
|
|
"src/interpreter/bytecode-array-accessor.cc",
|
|
|
|
"src/interpreter/bytecode-array-accessor.h",
|
2015-08-18 13:46:43 +00:00
|
|
|
"src/interpreter/bytecode-array-builder.cc",
|
|
|
|
"src/interpreter/bytecode-array-builder.h",
|
2015-09-10 16:21:34 +00:00
|
|
|
"src/interpreter/bytecode-array-iterator.cc",
|
|
|
|
"src/interpreter/bytecode-array-iterator.h",
|
2016-12-05 13:03:07 +00:00
|
|
|
"src/interpreter/bytecode-array-random-iterator.cc",
|
|
|
|
"src/interpreter/bytecode-array-random-iterator.h",
|
2017-06-27 08:44:35 +00:00
|
|
|
"src/interpreter/bytecode-array-writer.cc",
|
|
|
|
"src/interpreter/bytecode-array-writer.h",
|
2016-07-15 12:03:04 +00:00
|
|
|
"src/interpreter/bytecode-decoder.cc",
|
|
|
|
"src/interpreter/bytecode-decoder.h",
|
|
|
|
"src/interpreter/bytecode-flags.cc",
|
|
|
|
"src/interpreter/bytecode-flags.h",
|
2015-08-18 13:46:43 +00:00
|
|
|
"src/interpreter/bytecode-generator.cc",
|
|
|
|
"src/interpreter/bytecode-generator.h",
|
2017-05-15 16:31:05 +00:00
|
|
|
"src/interpreter/bytecode-jump-table.h",
|
2016-08-15 13:10:41 +00:00
|
|
|
"src/interpreter/bytecode-label.cc",
|
2016-06-03 14:52:59 +00:00
|
|
|
"src/interpreter/bytecode-label.h",
|
2017-06-27 08:44:35 +00:00
|
|
|
"src/interpreter/bytecode-node.cc",
|
|
|
|
"src/interpreter/bytecode-node.h",
|
2016-09-22 16:34:16 +00:00
|
|
|
"src/interpreter/bytecode-operands.cc",
|
|
|
|
"src/interpreter/bytecode-operands.h",
|
2016-01-14 13:43:14 +00:00
|
|
|
"src/interpreter/bytecode-register-allocator.h",
|
2016-05-27 15:57:35 +00:00
|
|
|
"src/interpreter/bytecode-register-optimizer.cc",
|
|
|
|
"src/interpreter/bytecode-register-optimizer.h",
|
2016-07-15 12:03:04 +00:00
|
|
|
"src/interpreter/bytecode-register.cc",
|
|
|
|
"src/interpreter/bytecode-register.h",
|
2017-04-11 13:37:25 +00:00
|
|
|
"src/interpreter/bytecode-source-info.cc",
|
|
|
|
"src/interpreter/bytecode-source-info.h",
|
2015-10-01 17:22:58 +00:00
|
|
|
"src/interpreter/bytecode-traits.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/interpreter/bytecodes.cc",
|
|
|
|
"src/interpreter/bytecodes.h",
|
2016-01-05 19:08:11 +00:00
|
|
|
"src/interpreter/constant-array-builder.cc",
|
|
|
|
"src/interpreter/constant-array-builder.h",
|
2015-10-01 15:04:09 +00:00
|
|
|
"src/interpreter/control-flow-builders.cc",
|
|
|
|
"src/interpreter/control-flow-builders.h",
|
2016-01-20 10:46:18 +00:00
|
|
|
"src/interpreter/handler-table-builder.cc",
|
|
|
|
"src/interpreter/handler-table-builder.h",
|
2017-03-20 16:56:06 +00:00
|
|
|
"src/interpreter/interpreter-generator.h",
|
2016-03-22 11:35:09 +00:00
|
|
|
"src/interpreter/interpreter-intrinsics.cc",
|
|
|
|
"src/interpreter/interpreter-intrinsics.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/interpreter/interpreter.cc",
|
|
|
|
"src/interpreter/interpreter.h",
|
2018-10-30 12:48:12 +00:00
|
|
|
"src/isolate-allocator.cc",
|
|
|
|
"src/isolate-allocator.h",
|
2018-10-10 15:25:33 +00:00
|
|
|
"src/isolate-data.h",
|
2015-09-01 09:25:19 +00:00
|
|
|
"src/isolate-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/isolate.cc",
|
|
|
|
"src/isolate.h",
|
2016-05-23 10:35:28 +00:00
|
|
|
"src/json-parser.cc",
|
2016-02-10 11:28:13 +00:00
|
|
|
"src/json-parser.h",
|
2016-05-23 10:35:28 +00:00
|
|
|
"src/json-stringifier.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/json-stringifier.h",
|
2016-03-07 19:25:12 +00:00
|
|
|
"src/keys.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/keys.h",
|
2017-01-20 14:21:34 +00:00
|
|
|
"src/label.h",
|
2014-11-11 10:24:52 +00:00
|
|
|
"src/layout-descriptor-inl.h",
|
|
|
|
"src/layout-descriptor.cc",
|
|
|
|
"src/layout-descriptor.h",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/locked-queue-inl.h",
|
|
|
|
"src/locked-queue.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/log-inl.h",
|
|
|
|
"src/log-utils.cc",
|
|
|
|
"src/log-utils.h",
|
|
|
|
"src/log.cc",
|
|
|
|
"src/log.h",
|
2016-09-06 14:56:56 +00:00
|
|
|
"src/lookup-cache-inl.h",
|
|
|
|
"src/lookup-cache.cc",
|
|
|
|
"src/lookup-cache.h",
|
2018-07-23 12:37:45 +00:00
|
|
|
"src/lookup-inl.h",
|
2014-06-11 09:59:14 +00:00
|
|
|
"src/lookup.cc",
|
|
|
|
"src/lookup.h",
|
2015-12-03 13:33:14 +00:00
|
|
|
"src/machine-type.cc",
|
|
|
|
"src/machine-type.h",
|
2017-03-15 11:38:48 +00:00
|
|
|
"src/macro-assembler-inl.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/macro-assembler.h",
|
2017-01-10 12:42:53 +00:00
|
|
|
"src/map-updater.cc",
|
|
|
|
"src/map-updater.h",
|
2018-09-24 13:25:07 +00:00
|
|
|
"src/math-random.cc",
|
|
|
|
"src/math-random.h",
|
2018-07-23 12:37:45 +00:00
|
|
|
"src/maybe-handles-inl.h",
|
|
|
|
"src/maybe-handles.h",
|
2018-11-29 16:59:26 +00:00
|
|
|
"src/memcopy.cc",
|
|
|
|
"src/memcopy.h",
|
2018-10-11 21:35:34 +00:00
|
|
|
"src/message-template.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/messages.cc",
|
|
|
|
"src/messages.h",
|
2018-11-27 08:32:53 +00:00
|
|
|
"src/microtask-queue.cc",
|
|
|
|
"src/microtask-queue.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/msan.h",
|
2015-11-13 12:32:08 +00:00
|
|
|
"src/objects-body-descriptors-inl.h",
|
|
|
|
"src/objects-body-descriptors.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/objects-debug.cc",
|
|
|
|
"src/objects-inl.h",
|
|
|
|
"src/objects-printer.cc",
|
|
|
|
"src/objects.cc",
|
|
|
|
"src/objects.h",
|
2019-02-12 08:41:25 +00:00
|
|
|
"src/objects/allocation-site-inl.h",
|
|
|
|
"src/objects/allocation-site.h",
|
2018-04-30 13:27:37 +00:00
|
|
|
"src/objects/api-callbacks-inl.h",
|
|
|
|
"src/objects/api-callbacks.h",
|
2017-06-09 13:33:49 +00:00
|
|
|
"src/objects/arguments-inl.h",
|
|
|
|
"src/objects/arguments.h",
|
2017-09-11 13:16:27 +00:00
|
|
|
"src/objects/bigint.cc",
|
|
|
|
"src/objects/bigint.h",
|
2018-12-17 10:42:00 +00:00
|
|
|
"src/objects/cell-inl.h",
|
|
|
|
"src/objects/cell.h",
|
2017-10-13 13:24:26 +00:00
|
|
|
"src/objects/code-inl.h",
|
2019-02-06 15:30:18 +00:00
|
|
|
"src/objects/code.cc",
|
2017-10-13 13:24:26 +00:00
|
|
|
"src/objects/code.h",
|
2017-04-06 08:32:57 +00:00
|
|
|
"src/objects/compilation-cache-inl.h",
|
|
|
|
"src/objects/compilation-cache.h",
|
2019-03-06 17:45:15 +00:00
|
|
|
"src/objects/compressed-slots-inl.h",
|
|
|
|
"src/objects/compressed-slots.h",
|
2019-02-12 08:41:25 +00:00
|
|
|
"src/objects/data-handler.h",
|
2017-05-23 12:17:09 +00:00
|
|
|
"src/objects/debug-objects-inl.h",
|
|
|
|
"src/objects/debug-objects.cc",
|
|
|
|
"src/objects/debug-objects.h",
|
2018-12-07 11:37:56 +00:00
|
|
|
"src/objects/descriptor-array-inl.h",
|
2017-03-24 11:38:53 +00:00
|
|
|
"src/objects/descriptor-array.h",
|
2018-11-30 13:09:34 +00:00
|
|
|
"src/objects/dictionary-inl.h",
|
2017-04-04 08:14:14 +00:00
|
|
|
"src/objects/dictionary.h",
|
2018-11-19 14:40:05 +00:00
|
|
|
"src/objects/embedder-data-array-inl.h",
|
|
|
|
"src/objects/embedder-data-array.cc",
|
|
|
|
"src/objects/embedder-data-array.h",
|
2018-11-21 11:30:49 +00:00
|
|
|
"src/objects/embedder-data-slot-inl.h",
|
|
|
|
"src/objects/embedder-data-slot.h",
|
2018-12-13 23:35:14 +00:00
|
|
|
"src/objects/feedback-cell-inl.h",
|
|
|
|
"src/objects/feedback-cell.h",
|
2017-12-01 11:33:03 +00:00
|
|
|
"src/objects/fixed-array-inl.h",
|
|
|
|
"src/objects/fixed-array.h",
|
2017-03-24 14:15:36 +00:00
|
|
|
"src/objects/frame-array-inl.h",
|
|
|
|
"src/objects/frame-array.h",
|
2017-06-20 18:22:40 +00:00
|
|
|
"src/objects/hash-table-inl.h",
|
2017-04-06 08:32:57 +00:00
|
|
|
"src/objects/hash-table.h",
|
2018-12-17 17:01:48 +00:00
|
|
|
"src/objects/heap-number-inl.h",
|
|
|
|
"src/objects/heap-number.h",
|
2018-10-24 01:44:19 +00:00
|
|
|
"src/objects/heap-object-inl.h",
|
|
|
|
"src/objects/heap-object.h",
|
2018-11-26 14:34:01 +00:00
|
|
|
"src/objects/instance-type-inl.h",
|
|
|
|
"src/objects/instance-type.h",
|
2017-04-21 08:35:12 +00:00
|
|
|
"src/objects/intl-objects.cc",
|
|
|
|
"src/objects/intl-objects.h",
|
2018-08-16 16:01:36 +00:00
|
|
|
"src/objects/js-array-buffer-inl.h",
|
2018-08-17 13:46:49 +00:00
|
|
|
"src/objects/js-array-buffer.cc",
|
2018-08-16 16:01:36 +00:00
|
|
|
"src/objects/js-array-buffer.h",
|
2017-10-13 15:06:23 +00:00
|
|
|
"src/objects/js-array-inl.h",
|
|
|
|
"src/objects/js-array.h",
|
2018-09-05 02:17:38 +00:00
|
|
|
"src/objects/js-break-iterator-inl.h",
|
|
|
|
"src/objects/js-break-iterator.cc",
|
|
|
|
"src/objects/js-break-iterator.h",
|
2018-08-08 09:23:07 +00:00
|
|
|
"src/objects/js-collator-inl.h",
|
|
|
|
"src/objects/js-collator.cc",
|
|
|
|
"src/objects/js-collator.h",
|
2017-12-01 11:40:51 +00:00
|
|
|
"src/objects/js-collection-inl.h",
|
2019-03-26 15:40:58 +00:00
|
|
|
"src/objects/js-collection-iterator.h",
|
2017-12-01 11:40:51 +00:00
|
|
|
"src/objects/js-collection.h",
|
2018-08-29 04:40:53 +00:00
|
|
|
"src/objects/js-date-time-format-inl.h",
|
|
|
|
"src/objects/js-date-time-format.cc",
|
|
|
|
"src/objects/js-date-time-format.h",
|
2018-07-20 06:54:47 +00:00
|
|
|
"src/objects/js-generator-inl.h",
|
|
|
|
"src/objects/js-generator.h",
|
2018-07-24 21:07:50 +00:00
|
|
|
"src/objects/js-list-format-inl.h",
|
|
|
|
"src/objects/js-list-format.cc",
|
|
|
|
"src/objects/js-list-format.h",
|
2018-05-15 20:50:46 +00:00
|
|
|
"src/objects/js-locale-inl.h",
|
|
|
|
"src/objects/js-locale.cc",
|
|
|
|
"src/objects/js-locale.h",
|
2018-09-04 18:32:51 +00:00
|
|
|
"src/objects/js-number-format-inl.h",
|
|
|
|
"src/objects/js-number-format.cc",
|
|
|
|
"src/objects/js-number-format.h",
|
2018-09-21 12:02:47 +00:00
|
|
|
"src/objects/js-objects-inl.h",
|
2019-02-04 10:13:58 +00:00
|
|
|
"src/objects/js-objects.cc",
|
2018-09-21 12:02:47 +00:00
|
|
|
"src/objects/js-objects.h",
|
2018-08-06 09:31:26 +00:00
|
|
|
"src/objects/js-plural-rules-inl.h",
|
|
|
|
"src/objects/js-plural-rules.cc",
|
|
|
|
"src/objects/js-plural-rules.h",
|
2018-02-26 12:40:05 +00:00
|
|
|
"src/objects/js-promise-inl.h",
|
|
|
|
"src/objects/js-promise.h",
|
2018-07-17 08:42:36 +00:00
|
|
|
"src/objects/js-proxy-inl.h",
|
|
|
|
"src/objects/js-proxy.h",
|
2017-10-13 15:06:23 +00:00
|
|
|
"src/objects/js-regexp-inl.h",
|
2018-04-05 14:41:26 +00:00
|
|
|
"src/objects/js-regexp-string-iterator-inl.h",
|
|
|
|
"src/objects/js-regexp-string-iterator.h",
|
2017-10-13 15:06:23 +00:00
|
|
|
"src/objects/js-regexp.h",
|
2018-07-10 12:52:05 +00:00
|
|
|
"src/objects/js-relative-time-format-inl.h",
|
|
|
|
"src/objects/js-relative-time-format.cc",
|
|
|
|
"src/objects/js-relative-time-format.h",
|
2018-10-18 07:59:28 +00:00
|
|
|
"src/objects/js-segment-iterator-inl.h",
|
|
|
|
"src/objects/js-segment-iterator.cc",
|
|
|
|
"src/objects/js-segment-iterator.h",
|
2018-10-05 01:57:05 +00:00
|
|
|
"src/objects/js-segmenter-inl.h",
|
|
|
|
"src/objects/js-segmenter.cc",
|
|
|
|
"src/objects/js-segmenter.h",
|
2018-10-09 12:08:23 +00:00
|
|
|
"src/objects/js-weak-refs-inl.h",
|
|
|
|
"src/objects/js-weak-refs.h",
|
2017-11-16 16:45:46 +00:00
|
|
|
"src/objects/literal-objects-inl.h",
|
2017-01-27 15:29:47 +00:00
|
|
|
"src/objects/literal-objects.cc",
|
|
|
|
"src/objects/literal-objects.h",
|
2018-04-26 14:37:05 +00:00
|
|
|
"src/objects/managed.cc",
|
|
|
|
"src/objects/managed.h",
|
2017-05-17 11:31:18 +00:00
|
|
|
"src/objects/map-inl.h",
|
2019-02-01 06:37:59 +00:00
|
|
|
"src/objects/map.cc",
|
2017-05-17 11:31:18 +00:00
|
|
|
"src/objects/map.h",
|
2018-03-05 13:18:51 +00:00
|
|
|
"src/objects/maybe-object-inl.h",
|
|
|
|
"src/objects/maybe-object.h",
|
2018-02-27 08:58:10 +00:00
|
|
|
"src/objects/microtask-inl.h",
|
|
|
|
"src/objects/microtask.h",
|
2017-08-22 18:49:56 +00:00
|
|
|
"src/objects/module-inl.h",
|
|
|
|
"src/objects/module.cc",
|
|
|
|
"src/objects/module.h",
|
2017-06-12 11:08:30 +00:00
|
|
|
"src/objects/name-inl.h",
|
|
|
|
"src/objects/name.h",
|
2019-04-29 13:55:11 +00:00
|
|
|
"src/objects/object-list-macros.h",
|
2016-12-20 14:08:21 +00:00
|
|
|
"src/objects/object-macros-undef.h",
|
|
|
|
"src/objects/object-macros.h",
|
2018-12-17 19:42:33 +00:00
|
|
|
"src/objects/oddball-inl.h",
|
|
|
|
"src/objects/oddball.h",
|
2018-05-05 20:22:10 +00:00
|
|
|
"src/objects/ordered-hash-table-inl.h",
|
|
|
|
"src/objects/ordered-hash-table.cc",
|
|
|
|
"src/objects/ordered-hash-table.h",
|
2018-02-26 12:40:05 +00:00
|
|
|
"src/objects/promise-inl.h",
|
|
|
|
"src/objects/promise.h",
|
2018-09-25 12:05:23 +00:00
|
|
|
"src/objects/property-array-inl.h",
|
|
|
|
"src/objects/property-array.h",
|
2018-11-30 13:09:34 +00:00
|
|
|
"src/objects/property-cell-inl.h",
|
|
|
|
"src/objects/property-cell.h",
|
2017-09-25 08:21:07 +00:00
|
|
|
"src/objects/property-descriptor-object-inl.h",
|
|
|
|
"src/objects/property-descriptor-object.h",
|
2018-07-10 11:45:14 +00:00
|
|
|
"src/objects/prototype-info-inl.h",
|
|
|
|
"src/objects/prototype-info.h",
|
2017-01-20 13:01:55 +00:00
|
|
|
"src/objects/regexp-match-info.h",
|
2017-01-16 10:30:59 +00:00
|
|
|
"src/objects/scope-info.cc",
|
2016-12-20 14:08:21 +00:00
|
|
|
"src/objects/scope-info.h",
|
2017-05-30 12:04:34 +00:00
|
|
|
"src/objects/script-inl.h",
|
|
|
|
"src/objects/script.h",
|
2017-05-29 13:24:32 +00:00
|
|
|
"src/objects/shared-function-info-inl.h",
|
|
|
|
"src/objects/shared-function-info.h",
|
2018-11-01 04:35:22 +00:00
|
|
|
"src/objects/slots-atomic-inl.h",
|
2018-10-23 23:02:20 +00:00
|
|
|
"src/objects/slots-inl.h",
|
|
|
|
"src/objects/slots.h",
|
2018-10-02 09:28:26 +00:00
|
|
|
"src/objects/stack-frame-info-inl.h",
|
2019-02-12 07:42:49 +00:00
|
|
|
"src/objects/stack-frame-info.cc",
|
2018-10-02 09:28:26 +00:00
|
|
|
"src/objects/stack-frame-info.h",
|
2019-01-31 09:46:40 +00:00
|
|
|
"src/objects/string-comparator.cc",
|
|
|
|
"src/objects/string-comparator.h",
|
2017-06-12 11:08:30 +00:00
|
|
|
"src/objects/string-inl.h",
|
2018-11-30 13:09:34 +00:00
|
|
|
"src/objects/string-table-inl.h",
|
2017-04-06 08:32:57 +00:00
|
|
|
"src/objects/string-table.h",
|
2019-01-31 09:46:40 +00:00
|
|
|
"src/objects/string.cc",
|
2017-06-12 11:08:30 +00:00
|
|
|
"src/objects/string.h",
|
2018-12-13 23:35:14 +00:00
|
|
|
"src/objects/struct-inl.h",
|
|
|
|
"src/objects/struct.h",
|
[Runtime] Ensure template objects are retained if bytecode is flushed.
Template objects should be cached after they are first created and reused on
subsiquent calls to tag functions. Currently these cached objects are stored
on the feedback vector, which has appropriate lifetime, however with bytecode
flushing the feedback vector could be cleared when the bytecode is flushed,
causing the template object to be dropped.
In order to retain the cached template objects in the face of bytecode flushing,
this CL adds a weakmap for each native context that is (weakly) keyed by
shared function info, and holds a linked list of cached template objects
associated with that shared function info, indexed by feedback vector slot id.
Misses will check this weakmap, and if no entry is found, a new template object
is created and added into this weakmap alongside the feedback vector.
BUG=v8:8799,v8:8799,v8:8395
Change-Id: Ia95d5cfc394ce58dc9fe6a1e49780f05299acc17
Reviewed-on: https://chromium-review.googlesource.com/c/1477746
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59818}
2019-02-22 15:10:57 +00:00
|
|
|
"src/objects/template-objects-inl.h",
|
2017-09-22 09:57:29 +00:00
|
|
|
"src/objects/template-objects.cc",
|
|
|
|
"src/objects/template-objects.h",
|
2018-04-27 08:31:07 +00:00
|
|
|
"src/objects/templates-inl.h",
|
|
|
|
"src/objects/templates.h",
|
2018-04-04 20:30:34 +00:00
|
|
|
"src/optimized-compilation-info.cc",
|
|
|
|
"src/optimized-compilation-info.h",
|
2014-06-27 08:42:17 +00:00
|
|
|
"src/ostreams.cc",
|
|
|
|
"src/ostreams.h",
|
2017-07-31 18:23:46 +00:00
|
|
|
"src/parsing/expression-scope-reparenter.cc",
|
|
|
|
"src/parsing/expression-scope-reparenter.h",
|
2018-12-17 09:28:27 +00:00
|
|
|
"src/parsing/expression-scope.h",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/parsing/func-name-inferrer.cc",
|
|
|
|
"src/parsing/func-name-inferrer.h",
|
2019-05-02 14:28:40 +00:00
|
|
|
"src/parsing/literal-buffer.cc",
|
|
|
|
"src/parsing/literal-buffer.h",
|
2016-08-22 11:33:30 +00:00
|
|
|
"src/parsing/parse-info.cc",
|
|
|
|
"src/parsing/parse-info.h",
|
2016-01-14 11:36:14 +00:00
|
|
|
"src/parsing/parser-base.h",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/parsing/parser.cc",
|
|
|
|
"src/parsing/parser.h",
|
2016-11-30 13:21:11 +00:00
|
|
|
"src/parsing/parsing.cc",
|
|
|
|
"src/parsing/parsing.h",
|
2019-01-07 14:09:18 +00:00
|
|
|
"src/parsing/preparse-data-impl.h",
|
|
|
|
"src/parsing/preparse-data.cc",
|
|
|
|
"src/parsing/preparse-data.h",
|
2018-08-22 10:08:35 +00:00
|
|
|
"src/parsing/preparser-logger.h",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/parsing/preparser.cc",
|
|
|
|
"src/parsing/preparser.h",
|
|
|
|
"src/parsing/rewriter.cc",
|
|
|
|
"src/parsing/rewriter.h",
|
|
|
|
"src/parsing/scanner-character-streams.cc",
|
|
|
|
"src/parsing/scanner-character-streams.h",
|
|
|
|
"src/parsing/scanner.cc",
|
|
|
|
"src/parsing/scanner.h",
|
|
|
|
"src/parsing/token.cc",
|
|
|
|
"src/parsing/token.h",
|
2015-02-25 14:17:39 +00:00
|
|
|
"src/pending-compilation-error-handler.cc",
|
|
|
|
"src/pending-compilation-error-handler.h",
|
2016-03-29 06:23:56 +00:00
|
|
|
"src/perf-jit.cc",
|
|
|
|
"src/perf-jit.h",
|
2018-10-25 14:16:38 +00:00
|
|
|
"src/pointer-with-payload.h",
|
2015-09-28 19:34:08 +00:00
|
|
|
"src/profiler/allocation-tracker.cc",
|
|
|
|
"src/profiler/allocation-tracker.h",
|
|
|
|
"src/profiler/circular-queue-inl.h",
|
|
|
|
"src/profiler/circular-queue.h",
|
|
|
|
"src/profiler/cpu-profiler-inl.h",
|
|
|
|
"src/profiler/cpu-profiler.cc",
|
|
|
|
"src/profiler/cpu-profiler.h",
|
|
|
|
"src/profiler/heap-profiler.cc",
|
|
|
|
"src/profiler/heap-profiler.h",
|
|
|
|
"src/profiler/heap-snapshot-generator-inl.h",
|
|
|
|
"src/profiler/heap-snapshot-generator.cc",
|
|
|
|
"src/profiler/heap-snapshot-generator.h",
|
|
|
|
"src/profiler/profile-generator-inl.h",
|
|
|
|
"src/profiler/profile-generator.cc",
|
|
|
|
"src/profiler/profile-generator.h",
|
2016-06-22 16:43:46 +00:00
|
|
|
"src/profiler/profiler-listener.cc",
|
|
|
|
"src/profiler/profiler-listener.h",
|
2016-01-22 16:36:40 +00:00
|
|
|
"src/profiler/sampling-heap-profiler.cc",
|
|
|
|
"src/profiler/sampling-heap-profiler.h",
|
2015-10-01 18:10:58 +00:00
|
|
|
"src/profiler/strings-storage.cc",
|
|
|
|
"src/profiler/strings-storage.h",
|
2016-05-17 06:11:27 +00:00
|
|
|
"src/profiler/tick-sample.cc",
|
|
|
|
"src/profiler/tick-sample.h",
|
2016-09-29 09:24:46 +00:00
|
|
|
"src/profiler/tracing-cpu-profiler.cc",
|
|
|
|
"src/profiler/tracing-cpu-profiler.h",
|
2015-10-13 14:38:16 +00:00
|
|
|
"src/property-descriptor.cc",
|
|
|
|
"src/property-descriptor.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/property-details.h",
|
|
|
|
"src/property.cc",
|
|
|
|
"src/property.h",
|
2014-07-14 07:19:49 +00:00
|
|
|
"src/prototype.h",
|
2018-12-13 10:50:29 +00:00
|
|
|
"src/ptr-compr-inl.h",
|
2018-11-19 16:21:25 +00:00
|
|
|
"src/ptr-compr.h",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/bytecodes-irregexp.h",
|
|
|
|
"src/regexp/interpreter-irregexp.cc",
|
|
|
|
"src/regexp/interpreter-irregexp.h",
|
|
|
|
"src/regexp/jsregexp-inl.h",
|
|
|
|
"src/regexp/jsregexp.cc",
|
|
|
|
"src/regexp/jsregexp.h",
|
2018-09-19 07:57:52 +00:00
|
|
|
"src/regexp/property-sequences.cc",
|
|
|
|
"src/regexp/property-sequences.h",
|
2016-01-08 09:55:29 +00:00
|
|
|
"src/regexp/regexp-ast.cc",
|
|
|
|
"src/regexp/regexp-ast.h",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/regexp-macro-assembler-irregexp-inl.h",
|
|
|
|
"src/regexp/regexp-macro-assembler-irregexp.cc",
|
|
|
|
"src/regexp/regexp-macro-assembler-irregexp.h",
|
|
|
|
"src/regexp/regexp-macro-assembler-tracer.cc",
|
|
|
|
"src/regexp/regexp-macro-assembler-tracer.h",
|
|
|
|
"src/regexp/regexp-macro-assembler.cc",
|
|
|
|
"src/regexp/regexp-macro-assembler.h",
|
2016-01-08 09:55:29 +00:00
|
|
|
"src/regexp/regexp-parser.cc",
|
|
|
|
"src/regexp/regexp-parser.h",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/regexp-stack.cc",
|
|
|
|
"src/regexp/regexp-stack.h",
|
2016-10-12 15:15:30 +00:00
|
|
|
"src/regexp/regexp-utils.cc",
|
|
|
|
"src/regexp/regexp-utils.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/register-arch.h",
|
2015-10-02 16:55:12 +00:00
|
|
|
"src/register-configuration.cc",
|
|
|
|
"src/register-configuration.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/register.h",
|
2017-08-01 13:38:20 +00:00
|
|
|
"src/reglist.h",
|
2018-08-17 08:35:18 +00:00
|
|
|
"src/reloc-info.cc",
|
|
|
|
"src/reloc-info.h",
|
2018-07-03 08:37:51 +00:00
|
|
|
"src/roots-inl.h",
|
2018-09-26 10:05:00 +00:00
|
|
|
"src/roots.cc",
|
2018-07-03 08:37:51 +00:00
|
|
|
"src/roots.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/runtime-profiler.cc",
|
|
|
|
"src/runtime-profiler.h",
|
2014-10-10 14:59:53 +00:00
|
|
|
"src/runtime/runtime-array.cc",
|
2015-06-03 17:58:29 +00:00
|
|
|
"src/runtime/runtime-atomics.cc",
|
2017-09-11 13:16:27 +00:00
|
|
|
"src/runtime/runtime-bigint.cc",
|
2014-10-01 12:11:12 +00:00
|
|
|
"src/runtime/runtime-classes.cc",
|
2014-09-29 09:32:38 +00:00
|
|
|
"src/runtime/runtime-collections.cc",
|
|
|
|
"src/runtime/runtime-compiler.cc",
|
2014-09-30 08:23:02 +00:00
|
|
|
"src/runtime/runtime-date.cc",
|
|
|
|
"src/runtime/runtime-debug.cc",
|
2015-06-01 07:20:50 +00:00
|
|
|
"src/runtime/runtime-forin.cc",
|
2014-09-30 10:46:04 +00:00
|
|
|
"src/runtime/runtime-function.cc",
|
2015-07-17 17:11:32 +00:00
|
|
|
"src/runtime/runtime-futex.cc",
|
2014-09-30 08:23:02 +00:00
|
|
|
"src/runtime/runtime-generator.cc",
|
2014-10-10 14:59:53 +00:00
|
|
|
"src/runtime/runtime-internal.cc",
|
2015-09-28 18:05:56 +00:00
|
|
|
"src/runtime/runtime-interpreter.cc",
|
2017-04-21 08:35:12 +00:00
|
|
|
"src/runtime/runtime-intl.cc",
|
2014-09-30 10:46:04 +00:00
|
|
|
"src/runtime/runtime-literals.cc",
|
2016-10-11 17:32:22 +00:00
|
|
|
"src/runtime/runtime-module.cc",
|
2014-09-29 09:32:38 +00:00
|
|
|
"src/runtime/runtime-numbers.cc",
|
2014-10-10 14:59:53 +00:00
|
|
|
"src/runtime/runtime-object.cc",
|
2015-09-10 13:04:15 +00:00
|
|
|
"src/runtime/runtime-operators.cc",
|
2016-10-27 12:28:03 +00:00
|
|
|
"src/runtime/runtime-promise.cc",
|
2014-09-30 10:46:04 +00:00
|
|
|
"src/runtime/runtime-proxy.cc",
|
2014-09-29 07:08:15 +00:00
|
|
|
"src/runtime/runtime-regexp.cc",
|
2014-09-30 10:46:04 +00:00
|
|
|
"src/runtime/runtime-scopes.cc",
|
2014-09-29 07:08:15 +00:00
|
|
|
"src/runtime/runtime-strings.cc",
|
2014-09-30 10:46:04 +00:00
|
|
|
"src/runtime/runtime-symbol.cc",
|
2014-09-29 09:32:38 +00:00
|
|
|
"src/runtime/runtime-test.cc",
|
|
|
|
"src/runtime/runtime-typedarray.cc",
|
2014-09-25 07:16:15 +00:00
|
|
|
"src/runtime/runtime-utils.h",
|
2016-06-28 16:46:34 +00:00
|
|
|
"src/runtime/runtime-wasm.cc",
|
2018-10-29 11:53:52 +00:00
|
|
|
"src/runtime/runtime-weak-refs.cc",
|
2014-09-25 07:16:15 +00:00
|
|
|
"src/runtime/runtime.cc",
|
|
|
|
"src/runtime/runtime.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/safepoint-table.cc",
|
|
|
|
"src/safepoint-table.h",
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/setup-isolate.h",
|
2015-05-04 10:11:50 +00:00
|
|
|
"src/signature.h",
|
2017-12-13 12:48:01 +00:00
|
|
|
"src/simulator-base.cc",
|
|
|
|
"src/simulator-base.h",
|
2015-06-26 14:24:42 +00:00
|
|
|
"src/simulator.h",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/snapshot/code-serializer.cc",
|
|
|
|
"src/snapshot/code-serializer.h",
|
2018-11-05 12:38:50 +00:00
|
|
|
"src/snapshot/deserializer-allocator.cc",
|
|
|
|
"src/snapshot/deserializer-allocator.h",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/snapshot/deserializer.cc",
|
|
|
|
"src/snapshot/deserializer.h",
|
2018-11-15 15:06:05 +00:00
|
|
|
"src/snapshot/embedded-data.cc",
|
|
|
|
"src/snapshot/embedded-data.h",
|
2015-08-18 14:31:26 +00:00
|
|
|
"src/snapshot/natives-common.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/snapshot/natives.h",
|
2017-08-02 14:00:37 +00:00
|
|
|
"src/snapshot/object-deserializer.cc",
|
|
|
|
"src/snapshot/object-deserializer.h",
|
|
|
|
"src/snapshot/partial-deserializer.cc",
|
|
|
|
"src/snapshot/partial-deserializer.h",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/snapshot/partial-serializer.cc",
|
|
|
|
"src/snapshot/partial-serializer.h",
|
2018-10-16 08:57:54 +00:00
|
|
|
"src/snapshot/read-only-deserializer.cc",
|
|
|
|
"src/snapshot/read-only-deserializer.h",
|
|
|
|
"src/snapshot/read-only-serializer.cc",
|
|
|
|
"src/snapshot/read-only-serializer.h",
|
2018-07-03 08:40:17 +00:00
|
|
|
"src/snapshot/references.h",
|
2018-10-16 08:57:54 +00:00
|
|
|
"src/snapshot/roots-serializer.cc",
|
|
|
|
"src/snapshot/roots-serializer.h",
|
2018-11-05 12:38:50 +00:00
|
|
|
"src/snapshot/serializer-allocator.cc",
|
|
|
|
"src/snapshot/serializer-allocator.h",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/snapshot/serializer-common.cc",
|
|
|
|
"src/snapshot/serializer-common.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/snapshot/serializer.cc",
|
|
|
|
"src/snapshot/serializer.h",
|
2015-03-27 15:28:55 +00:00
|
|
|
"src/snapshot/snapshot-common.cc",
|
|
|
|
"src/snapshot/snapshot-source-sink.cc",
|
|
|
|
"src/snapshot/snapshot-source-sink.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/snapshot/snapshot.h",
|
2017-08-02 14:00:37 +00:00
|
|
|
"src/snapshot/startup-deserializer.cc",
|
|
|
|
"src/snapshot/startup-deserializer.h",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/snapshot/startup-serializer.cc",
|
|
|
|
"src/snapshot/startup-serializer.h",
|
2016-06-28 05:51:09 +00:00
|
|
|
"src/source-position-table.cc",
|
|
|
|
"src/source-position-table.h",
|
This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset.
SourcePosition::InliningId() refers to a the new table DeoptimizationInputData::InliningPositions(), which provides the following data for every inlining id:
- The inlined SharedFunctionInfo as an offset into DeoptimizationInfo::LiteralArray
- The SourcePosition of the inlining. Recursively, this yields the full inlining stack.
Before the Code object is created, the same information can be found in CompilationInfo::inlined_functions().
If SourcePosition::InliningId() is SourcePosition::kNotInlined, it refers to the outer (non-inlined) function.
So every SourcePosition has full information about its inlining stack, as long as the corresponding Code object is known. The internal represenation of a source position is a positive 64bit integer.
All compilers create now appropriate source positions for inlined functions. In the case of Turbofan, this required using AstGraphBuilderWithPositions for inlined functions too. So this class is now moved to a header file.
At the moment, the additional information in source positions is only used in --trace-deopt and --code-comments. The profiler needs to be updated, at the moment it gets the correct script offsets from the deopt info, but the wrong script id from the reconstructed deopt stack, which can lead to wrong outputs. This should be resolved by making the profiler use the new inlining information for deopts.
I activated the inlined deoptimization tests in test-cpu-profiler.cc for Turbofan, changing them to a case where the deopt stack and the inlining position agree. It is currently still broken for other cases.
The following additional changes were necessary:
- The source position table (internal::SourcePositionTableBuilder etc.) supports now 64bit source positions. Encoding source positions in a single 64bit int together with the difference encoding in the source position table results in very little overhead for the inlining id, since only 12% of the source positions in Octane have a changed inlining id.
- The class HPositionInfo was effectively dead code and is now removed.
- SourcePosition has new printing and information facilities, including computing a full inlining stack.
- I had to rename compiler/source-position.{h,cc} to compiler/compiler-source-position-table.{h,cc} to avoid clashes with the new src/source-position.cc file.
- I wrote the new wrapper PodArray for ByteArray. It is a template working with any POD-type. This is used in DeoptimizationInputData::InliningPositions().
- I removed HInlinedFunctionInfo and HGraph::inlined_function_infos, because they were only used for the now obsolete Crankshaft inlining ids.
- Crankshaft managed a list of inlined functions in Lithium: LChunk::inlined_functions. This is an analog structure to CompilationInfo::inlined_functions. So I removed LChunk::inlined_functions and made Crankshaft use CompilationInfo::inlined_functions instead, because this was necessary to register the offsets into the literal array in a uniform way. This is a safe change because LChunk::inlined_functions has no other uses and the functions in CompilationInfo::inlined_functions have a strictly longer lifespan, being created earlier (in Hydrogen already).
BUG=v8:5432
Review-Url: https://codereview.chromium.org/2451853002
Cr-Commit-Position: refs/heads/master@{#40975}
2016-11-14 17:21:37 +00:00
|
|
|
"src/source-position.cc",
|
2016-01-15 12:11:35 +00:00
|
|
|
"src/source-position.h",
|
2015-06-26 14:24:42 +00:00
|
|
|
"src/splay-tree-inl.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/splay-tree.h",
|
2015-08-14 12:11:29 +00:00
|
|
|
"src/startup-data-util.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/startup-data-util.h",
|
2018-07-31 11:57:08 +00:00
|
|
|
"src/string-builder-inl.h",
|
2014-11-12 08:11:57 +00:00
|
|
|
"src/string-builder.cc",
|
2016-12-19 18:43:55 +00:00
|
|
|
"src/string-case.cc",
|
|
|
|
"src/string-case.h",
|
2018-09-19 07:51:17 +00:00
|
|
|
"src/string-constants.cc",
|
|
|
|
"src/string-constants.h",
|
2017-04-28 12:13:10 +00:00
|
|
|
"src/string-hasher-inl.h",
|
|
|
|
"src/string-hasher.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/string-search.h",
|
|
|
|
"src/string-stream.cc",
|
|
|
|
"src/string-stream.h",
|
|
|
|
"src/strtod.cc",
|
|
|
|
"src/strtod.h",
|
2018-11-09 14:11:21 +00:00
|
|
|
"src/task-utils.cc",
|
|
|
|
"src/task-utils.h",
|
2019-01-09 14:38:22 +00:00
|
|
|
"src/third_party/siphash/halfsiphash.cc",
|
|
|
|
"src/third_party/siphash/halfsiphash.h",
|
Implement DFA Unicode Decoder
This is a separation of the DFA Unicode Decoder from
https://chromium-review.googlesource.com/c/v8/v8/+/789560
I attempted to make the DFA's table a bit more explicit in this CL. Still, the
linter prevents me from letting me present the array as a "table" in source
code. For a better representation, please refer to
https://docs.google.com/spreadsheets/d/1L9STtkmWs-A7HdK5ZmZ-wPZ_VBjQ3-Jj_xN9c6_hLKA
- - - - -
Now for a big copy-paste from 789560:
Essentially, reworks a standard FSM (imagine an
array of structs) and flattens it out into a single-dimension array.
Using Table 3-7 of the Unicode 10.0.0 standard (page 126 of
http://www.unicode.org/versions/Unicode10.0.0/ch03.pdf), we can nicely
map all bytes into one of 12 character classes:
00. 0x00-0x7F
01. 0x80-0x8F (split from general continuation because this range is not
valid after a 0xF0 leading byte)
02. 0x90-0x9F (split from general continuation because this range is not
valid after a 0xE0 nor a 0xF4 leading byte)
03. 0xA0-0xBF (the rest of the continuation range)
04. 0xC0-0xC1, 0xF5-0xFF (the joined range of invalid bytes, notice this
includes 255 which we use as a known bad byte during hex-to-int
decoding)
05. 0xC2-0xDF (leading bytes which require any continuation byte
afterwards)
06. 0xE0 (leading byte which requires a 0xA0-0xBF afterwards then any
continuation byte after that)
07. 0xE1-0xEC, 0xEE-0xEF (leading bytes which requires any continuation
afterwards then any continuation byte after that)
08. 0xED (leading byte which requires a 0x80-0x9F afterwards then any
continuation byte after that)
09. 0xF1-F3 (leading bytes which requires any continuation byte
afterwards then any continuation byte then any continuation byte)
10. 0xF0 (leading bytes which requires a 0x90-0xBF afterwards then any
continuation byte then any continuation byte)
11. 0xF4 (leading bytes which requires a 0x80-0x8F afterwards then any
continuation byte then any continuation byte)
Note that 0xF0 and 0xF1-0xF3 were swapped so that fewer bytes were
needed to represent the transition state ("9, 10, 10, 10" vs.
"10, 9, 9, 9").
Using these 12 classes as "transitions", we can map from one state to
the next. Each state is defined as some multiple of 12, so that we're
always starting at the 0th column of each row of the FSM. From each
state, we add the transition and get a index of the new row the FSM is
entering.
If at any point we encounter a bad byte, the state + bad-byte-transition
is guaranteed to map us into the first row of the FSM (which contains no
valid exiting transitions).
The key differences from Björn's original (or his self-modified) DFA is
the "bad" state is now mapped to 0 (or the first row of the FSM) instead
of 12 (the second row). This saves ~50 bytes when gzipping, and also
speeds up determining if a string is properly encoded (see his sample
code at http://bjoern.hoehrmann.de/utf-8/decoder/dfa/#performance).
Finally, I've replace his ternary check with an array access, to make
the algorithm branchless. This places a requirement on the caller to 0
out the code point between successful decodings, which it could always
have done because it's already branching.
R=marja@google.com
Bug:
Change-Id: I574f208a84dc5d06caba17127b0d41f7ce1a3395
Reviewed-on: https://chromium-review.googlesource.com/805357
Commit-Queue: Justin Ridgewell <jridgewell@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50012}
2017-12-11 20:58:27 +00:00
|
|
|
"src/third_party/utf8-decoder/utf8-decoder.h",
|
2018-10-26 15:32:22 +00:00
|
|
|
"src/thread-id.cc",
|
|
|
|
"src/thread-id.h",
|
[isolate] Move ThreadLocalTop into IsolateData.
This refactors the ThreadLocalTop into separate header and
implementation files, and moves it from the Isolate to the
IsolateData (with some tweaks to make the layout of the class
predictable). This has the advantage that all external references
referring to addresses in the ThreadLocalTop (like js_entry_sp,
c_function, c_entry_fp, etc.) need only a single memory access
to reach them. For example the CallApiCallback can now use
```
mov %rbp,0x8e40(%r13)
mov %rsi,0x8de0(%r13)
mov %rbx,0x8e50(%r13)
```
to setup the information about context, frame pointer, and C++
function pointer in the ThreadLocalTop instead of the previously
generated code
```
mov 0x2e28(%r13),%r10
mov %rbp,(%r10)
mov 0x2e38(%r13),%r10
mov %rsi,(%r10)
mov 0x2e30(%r13),%r10
mov %rbx,(%r10)
```
which always had to load the scratch register %r10 with the actual
address first. This has interesting performance impact. On the
test case mentioned in v8:8820 (with the `d8` patch applied), the
performance goes from
```
console.timeEnd: fnMono, 2290.012000
console.timeEnd: fnCall, 2604.954000
```
to
```
console.timeEnd: fnMono, 2062.743000
console.timeEnd: fnCall, 2477.556000
```
which is a pretty solid **10%** improvement for the monomorphic API
accessor case, and a **5%** improvement for calling into the API
accessor instead.
But there might as well be other places besides API callback calls
that will benefit from this change, which I haven't tested explicitly.
Although this change is supposed to be as minimal as possible without
any functional effects, some changes were necessary/logical. Eventually
we should reconsider changing the layout and the types for the fields
in the ThreadLocalTop to be more consistent with the other IsolateData
entities. But this can be done in separate follow-up CLs, as this will
be quite a bit of churn on the code base, depending on how we do that
exactly, and is orthogonal to this optimization.
Bug: v8:8820, v8:8848, chromium:913553
Change-Id: I4732c8e60231f0312eb7767358c48bae0338220d
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/1474230
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59624}
2019-02-14 20:13:15 +00:00
|
|
|
"src/thread-local-top.cc",
|
|
|
|
"src/thread-local-top.h",
|
2015-12-17 18:48:07 +00:00
|
|
|
"src/tracing/trace-event.cc",
|
|
|
|
"src/tracing/trace-event.h",
|
2016-10-06 15:27:03 +00:00
|
|
|
"src/tracing/traced-value.cc",
|
|
|
|
"src/tracing/traced-value.h",
|
2016-10-28 20:43:17 +00:00
|
|
|
"src/tracing/tracing-category-observer.cc",
|
|
|
|
"src/tracing/tracing-category-observer.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/transitions-inl.h",
|
|
|
|
"src/transitions.cc",
|
|
|
|
"src/transitions.h",
|
2018-05-04 21:44:07 +00:00
|
|
|
"src/trap-handler/handler-inside.cc",
|
2017-03-13 22:12:23 +00:00
|
|
|
"src/trap-handler/handler-outside.cc",
|
|
|
|
"src/trap-handler/handler-shared.cc",
|
|
|
|
"src/trap-handler/trap-handler-internal.h",
|
2016-11-30 22:31:37 +00:00
|
|
|
"src/trap-handler/trap-handler.h",
|
2018-06-08 11:04:10 +00:00
|
|
|
"src/turbo-assembler.cc",
|
|
|
|
"src/turbo-assembler.h",
|
2016-09-20 13:53:32 +00:00
|
|
|
"src/type-hints.cc",
|
|
|
|
"src/type-hints.h",
|
2019-03-16 19:51:22 +00:00
|
|
|
"src/type-traits.h",
|
2014-10-08 14:55:03 +00:00
|
|
|
"src/unicode-decoder.cc",
|
|
|
|
"src/unicode-decoder.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/unicode-inl.h",
|
|
|
|
"src/unicode.cc",
|
|
|
|
"src/unicode.h",
|
2018-04-04 20:30:34 +00:00
|
|
|
"src/unoptimized-compilation-info.cc",
|
|
|
|
"src/unoptimized-compilation-info.h",
|
2018-11-22 15:23:05 +00:00
|
|
|
"src/unwinder.cc",
|
2016-05-17 10:54:14 +00:00
|
|
|
"src/uri.cc",
|
|
|
|
"src/uri.h",
|
Reland of "[heap] Parallel newspace evacuation, semispace copy, and compaction \o/"
This reverts commit 85ba94f28ce4b5d64e4c148efb1fee85bdb6579b.
All parallelism can be turned off using --predictable, or --noparallel-compaction.
This patch completely parallelizes
- semispace copy: from space -> to space (within newspace)
- newspace evacuation: newspace -> oldspace
- oldspace compaction: oldspace -> oldspace
Previously newspace has been handled sequentially (semispace copy, newspace
evacuation) before compacting oldspace in parallel. However, on a high level
there are no dependencies between those two actions, hence we parallelize them
altogether. We base the number of evacuation tasks on the overall set of
to-be-processed pages (newspace + oldspace compaction pages).
Some low-level details:
- The hard cap on number of tasks has been lifted
- We cache store buffer entries locally before merging them back into the global
StoreBuffer in a finalization phase.
- We cache AllocationSite operations locally before merging them back into the
global pretenuring storage in a finalization phase.
- AllocationSite might be compacted while they would be needed for newspace
evacuation. To mitigate any problems we defer checking allocation sites for
newspace till merging locally buffered data.
CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
BUG=chromium:524425
LOG=N
R=hpayer@chromium.org, ulan@chromium.org
Review URL: https://codereview.chromium.org/1640563004
Cr-Commit-Position: refs/heads/master@{#33552}
2016-01-27 13:23:54 +00:00
|
|
|
"src/utils-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/utils.cc",
|
|
|
|
"src/utils.h",
|
|
|
|
"src/v8.cc",
|
|
|
|
"src/v8.h",
|
|
|
|
"src/v8memory.h",
|
|
|
|
"src/v8threads.cc",
|
|
|
|
"src/v8threads.h",
|
2016-08-12 14:49:09 +00:00
|
|
|
"src/value-serializer.cc",
|
|
|
|
"src/value-serializer.h",
|
2017-12-07 12:26:02 +00:00
|
|
|
"src/vector-slot-pair.cc",
|
|
|
|
"src/vector-slot-pair.h",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/vector.h",
|
2015-01-18 15:43:02 +00:00
|
|
|
"src/version.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/version.h",
|
2017-04-25 13:32:18 +00:00
|
|
|
"src/visitors.cc",
|
|
|
|
"src/visitors.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/vm-state-inl.h",
|
|
|
|
"src/vm-state.h",
|
2017-11-30 19:28:38 +00:00
|
|
|
"src/wasm/baseline/liftoff-assembler-defs.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/liftoff-assembler.cc",
|
|
|
|
"src/wasm/baseline/liftoff-assembler.h",
|
|
|
|
"src/wasm/baseline/liftoff-compiler.cc",
|
2018-04-19 10:16:37 +00:00
|
|
|
"src/wasm/baseline/liftoff-compiler.h",
|
2017-11-30 19:28:38 +00:00
|
|
|
"src/wasm/baseline/liftoff-register.h",
|
2018-10-23 11:37:58 +00:00
|
|
|
"src/wasm/compilation-environment.h",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/wasm/decoder.h",
|
2017-02-10 01:16:37 +00:00
|
|
|
"src/wasm/function-body-decoder-impl.h",
|
2016-12-21 12:42:06 +00:00
|
|
|
"src/wasm/function-body-decoder.cc",
|
|
|
|
"src/wasm/function-body-decoder.h",
|
2018-04-19 10:16:37 +00:00
|
|
|
"src/wasm/function-compiler.cc",
|
|
|
|
"src/wasm/function-compiler.h",
|
2018-10-12 09:38:45 +00:00
|
|
|
"src/wasm/graph-builder-interface.cc",
|
|
|
|
"src/wasm/graph-builder-interface.h",
|
2019-03-22 12:41:21 +00:00
|
|
|
"src/wasm/js-to-wasm-wrapper-cache.h",
|
2018-06-14 09:17:47 +00:00
|
|
|
"src/wasm/jump-table-assembler.cc",
|
|
|
|
"src/wasm/jump-table-assembler.h",
|
2016-04-21 10:14:34 +00:00
|
|
|
"src/wasm/leb-helper.h",
|
2017-04-25 10:13:10 +00:00
|
|
|
"src/wasm/local-decl-encoder.cc",
|
|
|
|
"src/wasm/local-decl-encoder.h",
|
2017-10-02 07:39:30 +00:00
|
|
|
"src/wasm/memory-tracing.cc",
|
|
|
|
"src/wasm/memory-tracing.h",
|
2017-06-07 16:00:29 +00:00
|
|
|
"src/wasm/module-compiler.cc",
|
|
|
|
"src/wasm/module-compiler.h",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/wasm/module-decoder.cc",
|
|
|
|
"src/wasm/module-decoder.h",
|
2019-01-14 16:03:40 +00:00
|
|
|
"src/wasm/module-instantiate.cc",
|
|
|
|
"src/wasm/module-instantiate.h",
|
2018-09-04 13:06:33 +00:00
|
|
|
"src/wasm/object-access.h",
|
2016-10-11 12:40:24 +00:00
|
|
|
"src/wasm/signature-map.cc",
|
|
|
|
"src/wasm/signature-map.h",
|
2017-05-11 08:51:54 +00:00
|
|
|
"src/wasm/streaming-decoder.cc",
|
|
|
|
"src/wasm/streaming-decoder.h",
|
2018-04-24 13:07:51 +00:00
|
|
|
"src/wasm/value-type.h",
|
2017-12-05 01:47:59 +00:00
|
|
|
"src/wasm/wasm-code-manager.cc",
|
|
|
|
"src/wasm/wasm-code-manager.h",
|
2018-01-11 11:49:29 +00:00
|
|
|
"src/wasm/wasm-constants.h",
|
2016-06-17 08:33:36 +00:00
|
|
|
"src/wasm/wasm-debug.cc",
|
2018-01-17 14:46:27 +00:00
|
|
|
"src/wasm/wasm-engine.cc",
|
2017-12-05 00:28:35 +00:00
|
|
|
"src/wasm/wasm-engine.h",
|
2016-04-06 09:24:23 +00:00
|
|
|
"src/wasm/wasm-external-refs.cc",
|
2016-03-04 09:50:48 +00:00
|
|
|
"src/wasm/wasm-external-refs.h",
|
2018-08-08 14:54:44 +00:00
|
|
|
"src/wasm/wasm-feature-flags.h",
|
|
|
|
"src/wasm/wasm-features.cc",
|
|
|
|
"src/wasm/wasm-features.h",
|
2019-04-01 15:28:09 +00:00
|
|
|
"src/wasm/wasm-import-wrapper-cache.cc",
|
2019-03-22 12:41:21 +00:00
|
|
|
"src/wasm/wasm-import-wrapper-cache.h",
|
2016-05-25 08:32:37 +00:00
|
|
|
"src/wasm/wasm-interpreter.cc",
|
|
|
|
"src/wasm/wasm-interpreter.h",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/wasm/wasm-js.cc",
|
|
|
|
"src/wasm/wasm-js.h",
|
2016-12-05 10:02:26 +00:00
|
|
|
"src/wasm/wasm-limits.h",
|
2018-04-27 12:59:22 +00:00
|
|
|
"src/wasm/wasm-linkage.h",
|
2017-10-02 08:27:24 +00:00
|
|
|
"src/wasm/wasm-memory.cc",
|
|
|
|
"src/wasm/wasm-memory.h",
|
2016-09-29 11:29:05 +00:00
|
|
|
"src/wasm/wasm-module-builder.cc",
|
|
|
|
"src/wasm/wasm-module-builder.h",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/wasm/wasm-module.cc",
|
|
|
|
"src/wasm/wasm-module.h",
|
2017-08-30 13:53:15 +00:00
|
|
|
"src/wasm/wasm-objects-inl.h",
|
2016-11-11 11:12:31 +00:00
|
|
|
"src/wasm/wasm-objects.cc",
|
|
|
|
"src/wasm/wasm-objects.h",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/wasm/wasm-opcodes.cc",
|
|
|
|
"src/wasm/wasm-opcodes.h",
|
|
|
|
"src/wasm/wasm-result.cc",
|
|
|
|
"src/wasm/wasm-result.h",
|
2017-11-28 22:25:36 +00:00
|
|
|
"src/wasm/wasm-serialization.cc",
|
|
|
|
"src/wasm/wasm-serialization.h",
|
2016-11-22 11:59:27 +00:00
|
|
|
"src/wasm/wasm-text.cc",
|
|
|
|
"src/wasm/wasm-text.h",
|
2018-08-21 15:01:31 +00:00
|
|
|
"src/wasm/wasm-tier.h",
|
2017-07-14 13:49:01 +00:00
|
|
|
"src/wasm/wasm-value.h",
|
2016-09-20 16:07:25 +00:00
|
|
|
"src/zone/accounting-allocator.cc",
|
|
|
|
"src/zone/accounting-allocator.h",
|
|
|
|
"src/zone/zone-allocator.h",
|
2016-10-26 17:07:48 +00:00
|
|
|
"src/zone/zone-chunk-list.h",
|
2016-09-20 16:07:25 +00:00
|
|
|
"src/zone/zone-containers.h",
|
2017-01-02 13:03:02 +00:00
|
|
|
"src/zone/zone-handle-set.h",
|
2017-09-28 09:28:16 +00:00
|
|
|
"src/zone/zone-list-inl.h",
|
2016-10-04 08:47:17 +00:00
|
|
|
"src/zone/zone-segment.cc",
|
2016-09-20 16:07:25 +00:00
|
|
|
"src/zone/zone-segment.h",
|
2019-02-26 11:38:00 +00:00
|
|
|
"src/zone/zone-splay-tree.h",
|
2016-09-20 16:07:25 +00:00
|
|
|
"src/zone/zone.cc",
|
|
|
|
"src/zone/zone.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
|
2018-07-20 13:13:31 +00:00
|
|
|
if (v8_check_header_includes) {
|
|
|
|
# This file will be generated by tools/generate-header-include-checks.py
|
|
|
|
# if the "check_v8_header_includes" gclient variable is set.
|
|
|
|
import("check-header-includes/sources.gni")
|
|
|
|
sources += check_header_includes_sources
|
|
|
|
}
|
|
|
|
|
2019-01-23 17:06:04 +00:00
|
|
|
jumbo_excluded_sources = [
|
|
|
|
# TODO(mostynb@vewd.com): don't exclude these http://crbug.com/752428
|
|
|
|
"src/profiler/heap-snapshot-generator.cc", # Macro clash in mman-linux.h
|
2017-08-30 07:50:52 +00:00
|
|
|
|
2019-01-23 17:06:04 +00:00
|
|
|
# These source files take an unusually large amount of time to
|
|
|
|
# compile. Build them separately to avoid bottlenecks.
|
|
|
|
"src/api.cc",
|
|
|
|
"src/elements.cc",
|
|
|
|
"src/heap/heap.cc",
|
|
|
|
"src/objects.cc",
|
|
|
|
"src/parsing/parser.cc",
|
|
|
|
]
|
2017-08-09 08:11:21 +00:00
|
|
|
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "x86") {
|
2016-09-21 11:44:10 +00:00
|
|
|
sources += [ ### gcmole(arch:ia32) ###
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/ia32/code-generator-ia32.cc",
|
|
|
|
"src/compiler/backend/ia32/instruction-codes-ia32.h",
|
|
|
|
"src/compiler/backend/ia32/instruction-scheduler-ia32.cc",
|
|
|
|
"src/compiler/backend/ia32/instruction-selector-ia32.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/debug/ia32/debug-ia32.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/ia32/assembler-ia32-inl.h",
|
|
|
|
"src/ia32/assembler-ia32.cc",
|
|
|
|
"src/ia32/assembler-ia32.h",
|
2018-06-26 09:16:18 +00:00
|
|
|
"src/ia32/constants-ia32.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/ia32/cpu-ia32.cc",
|
|
|
|
"src/ia32/deoptimizer-ia32.cc",
|
|
|
|
"src/ia32/disasm-ia32.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/ia32/frame-constants-ia32.cc",
|
|
|
|
"src/ia32/frame-constants-ia32.h",
|
2014-08-29 10:40:02 +00:00
|
|
|
"src/ia32/interface-descriptors-ia32.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/ia32/macro-assembler-ia32.cc",
|
|
|
|
"src/ia32/macro-assembler-ia32.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/ia32/register-ia32.h",
|
2017-03-10 02:40:06 +00:00
|
|
|
"src/ia32/sse-instr.h",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/ia32/regexp-macro-assembler-ia32.cc",
|
|
|
|
"src/regexp/ia32/regexp-macro-assembler-ia32.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/ia32/liftoff-assembler-ia32.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "x64") {
|
2016-09-21 11:44:10 +00:00
|
|
|
sources += [ ### gcmole(arch:x64) ###
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/x64/code-generator-x64.cc",
|
|
|
|
"src/compiler/backend/x64/instruction-codes-x64.h",
|
|
|
|
"src/compiler/backend/x64/instruction-scheduler-x64.cc",
|
|
|
|
"src/compiler/backend/x64/instruction-selector-x64.cc",
|
|
|
|
"src/compiler/backend/x64/unwinding-info-writer-x64.cc",
|
|
|
|
"src/compiler/backend/x64/unwinding-info-writer-x64.h",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/debug/x64/debug-x64.cc",
|
|
|
|
"src/regexp/x64/regexp-macro-assembler-x64.cc",
|
|
|
|
"src/regexp/x64/regexp-macro-assembler-x64.h",
|
2016-09-19 10:58:59 +00:00
|
|
|
"src/third_party/valgrind/valgrind.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/x64/liftoff-assembler-x64.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/x64/assembler-x64-inl.h",
|
|
|
|
"src/x64/assembler-x64.cc",
|
|
|
|
"src/x64/assembler-x64.h",
|
2018-06-26 09:16:18 +00:00
|
|
|
"src/x64/constants-x64.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/x64/cpu-x64.cc",
|
|
|
|
"src/x64/deoptimizer-x64.cc",
|
|
|
|
"src/x64/disasm-x64.cc",
|
2016-07-14 10:31:02 +00:00
|
|
|
"src/x64/eh-frame-x64.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/x64/frame-constants-x64.cc",
|
|
|
|
"src/x64/frame-constants-x64.h",
|
2014-08-29 10:40:02 +00:00
|
|
|
"src/x64/interface-descriptors-x64.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/x64/macro-assembler-x64.cc",
|
|
|
|
"src/x64/macro-assembler-x64.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/x64/register-x64.h",
|
2016-09-12 06:24:06 +00:00
|
|
|
"src/x64/sse-instr.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
2019-04-17 23:13:47 +00:00
|
|
|
|
2019-04-17 10:13:56 +00:00
|
|
|
# iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
|
|
|
|
# based on Darwin and thus POSIX-compliant to a similar degree.
|
|
|
|
if (is_linux || is_mac || is_ios) {
|
2018-05-04 21:44:07 +00:00
|
|
|
sources += [
|
2018-10-26 11:04:26 +00:00
|
|
|
"src/trap-handler/handler-inside-posix.cc",
|
|
|
|
"src/trap-handler/handler-inside-posix.h",
|
|
|
|
"src/trap-handler/handler-outside-posix.cc",
|
2018-05-04 21:44:07 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
if (is_win) {
|
2018-10-30 09:35:14 +00:00
|
|
|
sources += [
|
|
|
|
"src/trap-handler/handler-inside-win.cc",
|
|
|
|
"src/trap-handler/handler-inside-win.h",
|
|
|
|
"src/trap-handler/handler-outside-win.cc",
|
Reland "V8 x64 backend doesn't emit ABI compliant stack frames"
This is a reland of 3cda21de77d098a612eadf44d504b188a599c5f0
Original change's description:
> V8 x64 backend doesn't emit ABI compliant stack frames
>
> On 64 bit Windows, the OS stack walking does not work because the V8 x64
> backend doesn't emit unwinding info and also because it doesn't emit ABI
> compliant stack frames. See
> https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
> for more details.
>
> This problem can be fixed by observing that V8 frames usually all have the same
> prolog and epilog:
>
> push rbp,
> mov rbp, rsp
> ...
> pop rbp
> ret N
>
> and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
> should walk through V8 frames. Furthermore, since V8 Code objects are all
> allocated in the same code-range for an Isolate, it is possible to register a
> single PDATA/XDATA entry to cover stack walking for all the code generated
> inside that code-range.
>
> This PR contains changes required to enable stack walking on Win64:
>
> EmbeddedFileWriter now adds assembler directives to the builtins
> snapshot source file (embedded.cc) to emit additional entries in the .pdata and
> in the .xdata section of the V8 executable. This takes care of stack walking
> for embedded builtins. (The case of non-embedded builtins is not supported).
> The x64 Assembler has been modified to collect the information required to emit
> this unwind info for builtins.
>
> Stack walking for jitted code is handled is Isolate.cpp, by registering
> dynamically PDATA/XDATA for the whole code-range address space every time a new
> Isolate is initialized, and by unregistering them when the Isolate is
> destroyed.
>
> Stack walking for WASM jitted code is handled is the same way in
> wasm::NativeModule (wasm/wasm-code-manager.cpp).
>
> It is important to note that Crashpad and Breakpad are already registering
> PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
> builtins). Since it is not possible to register multiple PDATA entries for the
> same address range, a new function is added to the V8 API:
> SetUnhandledExceptionCallback() can be used by an embedder to register its own
> unhandled exception handler for exceptions that arise in v8-generated code.
> V8 embedders should be modified accordingly (code for this is in a separate PR
> in the Chromium repository:
> https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
>
> All these changes are experimental, behind:
>
> the 'v8_win64_unwinding_info' build flag, and
> the '--win64-unwinding-info' runtime flag.
>
> Bug: v8:3598
> Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Paolo Severini <paolosev@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#60330}
Bug: v8:3598
Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#60581}
2019-04-01 21:43:23 +00:00
|
|
|
"src/unwinding-info-win64.cc",
|
|
|
|
"src/unwinding-info-win64.h",
|
2018-10-30 09:35:14 +00:00
|
|
|
]
|
2017-03-13 22:12:23 +00:00
|
|
|
}
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "arm") {
|
2016-09-21 11:44:10 +00:00
|
|
|
sources += [ ### gcmole(arch:arm) ###
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm/assembler-arm-inl.h",
|
|
|
|
"src/arm/assembler-arm.cc",
|
|
|
|
"src/arm/assembler-arm.h",
|
|
|
|
"src/arm/constants-arm.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/arm/constants-arm.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm/cpu-arm.cc",
|
|
|
|
"src/arm/deoptimizer-arm.cc",
|
|
|
|
"src/arm/disasm-arm.cc",
|
2016-07-14 10:31:02 +00:00
|
|
|
"src/arm/eh-frame-arm.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/arm/frame-constants-arm.cc",
|
|
|
|
"src/arm/frame-constants-arm.h",
|
2014-08-29 10:40:02 +00:00
|
|
|
"src/arm/interface-descriptors-arm.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm/macro-assembler-arm.cc",
|
|
|
|
"src/arm/macro-assembler-arm.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/arm/register-arm.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm/simulator-arm.cc",
|
2015-06-26 14:24:42 +00:00
|
|
|
"src/arm/simulator-arm.h",
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/arm/code-generator-arm.cc",
|
|
|
|
"src/compiler/backend/arm/instruction-codes-arm.h",
|
|
|
|
"src/compiler/backend/arm/instruction-scheduler-arm.cc",
|
|
|
|
"src/compiler/backend/arm/instruction-selector-arm.cc",
|
|
|
|
"src/compiler/backend/arm/unwinding-info-writer-arm.cc",
|
|
|
|
"src/compiler/backend/arm/unwinding-info-writer-arm.h",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/arm/debug-arm.cc",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/arm/regexp-macro-assembler-arm.cc",
|
|
|
|
"src/regexp/arm/regexp-macro-assembler-arm.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/arm/liftoff-assembler-arm.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "arm64") {
|
2016-09-21 11:44:10 +00:00
|
|
|
sources += [ ### gcmole(arch:arm64) ###
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/arm64/assembler-arm64-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm64/assembler-arm64.cc",
|
|
|
|
"src/arm64/assembler-arm64.h",
|
|
|
|
"src/arm64/constants-arm64.h",
|
|
|
|
"src/arm64/cpu-arm64.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/arm64/decoder-arm64-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm64/decoder-arm64.cc",
|
|
|
|
"src/arm64/decoder-arm64.h",
|
|
|
|
"src/arm64/deoptimizer-arm64.cc",
|
|
|
|
"src/arm64/disasm-arm64.cc",
|
|
|
|
"src/arm64/disasm-arm64.h",
|
2016-07-14 10:31:02 +00:00
|
|
|
"src/arm64/eh-frame-arm64.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/arm64/frame-constants-arm64.cc",
|
|
|
|
"src/arm64/frame-constants-arm64.h",
|
2017-09-13 21:16:25 +00:00
|
|
|
"src/arm64/instructions-arm64-constants.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm64/instructions-arm64.cc",
|
|
|
|
"src/arm64/instructions-arm64.h",
|
|
|
|
"src/arm64/instrument-arm64.cc",
|
|
|
|
"src/arm64/instrument-arm64.h",
|
2014-08-29 10:40:02 +00:00
|
|
|
"src/arm64/interface-descriptors-arm64.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/arm64/macro-assembler-arm64-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm64/macro-assembler-arm64.cc",
|
|
|
|
"src/arm64/macro-assembler-arm64.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/arm64/register-arm64.cc",
|
|
|
|
"src/arm64/register-arm64.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm64/simulator-arm64.cc",
|
|
|
|
"src/arm64/simulator-arm64.h",
|
2017-05-31 13:58:43 +00:00
|
|
|
"src/arm64/simulator-logic-arm64.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm64/utils-arm64.cc",
|
|
|
|
"src/arm64/utils-arm64.h",
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/arm64/code-generator-arm64.cc",
|
|
|
|
"src/compiler/backend/arm64/instruction-codes-arm64.h",
|
|
|
|
"src/compiler/backend/arm64/instruction-scheduler-arm64.cc",
|
|
|
|
"src/compiler/backend/arm64/instruction-selector-arm64.cc",
|
|
|
|
"src/compiler/backend/arm64/unwinding-info-writer-arm64.cc",
|
|
|
|
"src/compiler/backend/arm64/unwinding-info-writer-arm64.h",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/arm64/debug-arm64.cc",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/arm64/regexp-macro-assembler-arm64.cc",
|
|
|
|
"src/regexp/arm64/regexp-macro-assembler-arm64.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/arm64/liftoff-assembler-arm64.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
2019-01-23 17:06:04 +00:00
|
|
|
jumbo_excluded_sources += [
|
|
|
|
# TODO(mostynb@vewd.com): fix this code so it doesn't need
|
|
|
|
# to be excluded, see the comments inside.
|
|
|
|
"src/arm64/instructions-arm64-constants.cc",
|
|
|
|
]
|
2016-09-21 11:44:10 +00:00
|
|
|
} else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
|
|
|
|
sources += [ ### gcmole(arch:mipsel) ###
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/mips/code-generator-mips.cc",
|
|
|
|
"src/compiler/backend/mips/instruction-codes-mips.h",
|
|
|
|
"src/compiler/backend/mips/instruction-scheduler-mips.cc",
|
|
|
|
"src/compiler/backend/mips/instruction-selector-mips.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/debug/mips/debug-mips.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/mips/assembler-mips-inl.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/mips/assembler-mips.cc",
|
|
|
|
"src/mips/assembler-mips.h",
|
|
|
|
"src/mips/constants-mips.cc",
|
|
|
|
"src/mips/constants-mips.h",
|
|
|
|
"src/mips/cpu-mips.cc",
|
|
|
|
"src/mips/deoptimizer-mips.cc",
|
|
|
|
"src/mips/disasm-mips.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/mips/frame-constants-mips.cc",
|
|
|
|
"src/mips/frame-constants-mips.h",
|
2014-08-29 15:28:26 +00:00
|
|
|
"src/mips/interface-descriptors-mips.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/mips/macro-assembler-mips.cc",
|
|
|
|
"src/mips/macro-assembler-mips.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/mips/register-mips.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/mips/simulator-mips.cc",
|
2015-06-26 14:24:42 +00:00
|
|
|
"src/mips/simulator-mips.h",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/mips/regexp-macro-assembler-mips.cc",
|
|
|
|
"src/regexp/mips/regexp-macro-assembler-mips.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/mips/liftoff-assembler-mips.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
2016-09-21 11:44:10 +00:00
|
|
|
} else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
|
|
|
|
sources += [ ### gcmole(arch:mips64el) ###
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/mips64/code-generator-mips64.cc",
|
|
|
|
"src/compiler/backend/mips64/instruction-codes-mips64.h",
|
|
|
|
"src/compiler/backend/mips64/instruction-scheduler-mips64.cc",
|
|
|
|
"src/compiler/backend/mips64/instruction-selector-mips64.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/debug/mips64/debug-mips64.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/mips64/assembler-mips64-inl.h",
|
2014-08-25 15:15:26 +00:00
|
|
|
"src/mips64/assembler-mips64.cc",
|
|
|
|
"src/mips64/assembler-mips64.h",
|
|
|
|
"src/mips64/constants-mips64.cc",
|
|
|
|
"src/mips64/constants-mips64.h",
|
|
|
|
"src/mips64/cpu-mips64.cc",
|
|
|
|
"src/mips64/deoptimizer-mips64.cc",
|
|
|
|
"src/mips64/disasm-mips64.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/mips64/frame-constants-mips64.cc",
|
|
|
|
"src/mips64/frame-constants-mips64.h",
|
2014-08-29 15:28:26 +00:00
|
|
|
"src/mips64/interface-descriptors-mips64.cc",
|
2014-08-25 15:15:26 +00:00
|
|
|
"src/mips64/macro-assembler-mips64.cc",
|
|
|
|
"src/mips64/macro-assembler-mips64.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/mips64/register-mips64.h",
|
2014-08-25 15:15:26 +00:00
|
|
|
"src/mips64/simulator-mips64.cc",
|
2015-06-26 14:24:42 +00:00
|
|
|
"src/mips64/simulator-mips64.h",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/mips64/regexp-macro-assembler-mips64.cc",
|
|
|
|
"src/regexp/mips64/regexp-macro-assembler-mips64.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/mips64/liftoff-assembler-mips64.h",
|
2014-08-25 15:15:26 +00:00
|
|
|
]
|
2016-09-21 11:44:10 +00:00
|
|
|
} else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
|
|
|
|
sources += [ ### gcmole(arch:ppc) ###
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/ppc/code-generator-ppc.cc",
|
|
|
|
"src/compiler/backend/ppc/instruction-codes-ppc.h",
|
|
|
|
"src/compiler/backend/ppc/instruction-scheduler-ppc.cc",
|
|
|
|
"src/compiler/backend/ppc/instruction-selector-ppc.cc",
|
2016-09-21 11:44:10 +00:00
|
|
|
"src/debug/ppc/debug-ppc.cc",
|
|
|
|
"src/ppc/assembler-ppc-inl.h",
|
|
|
|
"src/ppc/assembler-ppc.cc",
|
|
|
|
"src/ppc/assembler-ppc.h",
|
|
|
|
"src/ppc/constants-ppc.cc",
|
|
|
|
"src/ppc/constants-ppc.h",
|
|
|
|
"src/ppc/cpu-ppc.cc",
|
|
|
|
"src/ppc/deoptimizer-ppc.cc",
|
|
|
|
"src/ppc/disasm-ppc.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/ppc/frame-constants-ppc.cc",
|
|
|
|
"src/ppc/frame-constants-ppc.h",
|
2016-09-21 11:44:10 +00:00
|
|
|
"src/ppc/interface-descriptors-ppc.cc",
|
|
|
|
"src/ppc/macro-assembler-ppc.cc",
|
|
|
|
"src/ppc/macro-assembler-ppc.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/ppc/register-ppc.h",
|
2016-09-21 11:44:10 +00:00
|
|
|
"src/ppc/simulator-ppc.cc",
|
|
|
|
"src/ppc/simulator-ppc.h",
|
|
|
|
"src/regexp/ppc/regexp-macro-assembler-ppc.cc",
|
|
|
|
"src/regexp/ppc/regexp-macro-assembler-ppc.h",
|
2017-10-23 13:09:51 +00:00
|
|
|
"src/wasm/baseline/ppc/liftoff-assembler-ppc.h",
|
2016-09-21 11:44:10 +00:00
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
|
2016-09-21 11:44:10 +00:00
|
|
|
sources += [ ### gcmole(arch:s390) ###
|
2018-11-12 14:12:52 +00:00
|
|
|
"src/compiler/backend/s390/code-generator-s390.cc",
|
|
|
|
"src/compiler/backend/s390/instruction-codes-s390.h",
|
|
|
|
"src/compiler/backend/s390/instruction-scheduler-s390.cc",
|
|
|
|
"src/compiler/backend/s390/instruction-selector-s390.cc",
|
2016-03-01 17:00:08 +00:00
|
|
|
"src/debug/s390/debug-s390.cc",
|
2016-03-08 15:08:01 +00:00
|
|
|
"src/regexp/s390/regexp-macro-assembler-s390.cc",
|
|
|
|
"src/regexp/s390/regexp-macro-assembler-s390.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/s390/assembler-s390-inl.h",
|
2016-02-26 16:24:36 +00:00
|
|
|
"src/s390/assembler-s390.cc",
|
|
|
|
"src/s390/assembler-s390.h",
|
|
|
|
"src/s390/constants-s390.cc",
|
|
|
|
"src/s390/constants-s390.h",
|
|
|
|
"src/s390/cpu-s390.cc",
|
|
|
|
"src/s390/deoptimizer-s390.cc",
|
|
|
|
"src/s390/disasm-s390.cc",
|
2017-08-03 09:35:57 +00:00
|
|
|
"src/s390/frame-constants-s390.cc",
|
|
|
|
"src/s390/frame-constants-s390.h",
|
2016-02-26 16:24:36 +00:00
|
|
|
"src/s390/interface-descriptors-s390.cc",
|
|
|
|
"src/s390/macro-assembler-s390.cc",
|
|
|
|
"src/s390/macro-assembler-s390.h",
|
[assembler] Factor out Registers from assembler.h
This refactoring reduces the LoC after preprocessor expansion by 370,322
gen ( 21 files): 71,503 to 1,631,168 ( 23x)
src ( 624 files): 367,639 to 53,231,764 ( 145x)
test ( 392 files): 490,770 to 37,450,839 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,681 to 102,836,194 ( 87x)
gen ( 21 files): 71,503 to 1,613,222 ( 23x)
src ( 624 files): 367,634 to 52,964,046 ( 144x)
test ( 392 files): 490,771 to 37,366,181 ( 76x)
third_party ( 432 files): 239,085 to 9,547,902 ( 40x)
total ( 1521 files): 1,183,677 to 102,465,872 ( 87x)
Bug: v8:8562
Change-Id: Ib4e771c37471a2ff19c5538e62c038943cc74eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1382469
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58349}
2018-12-18 15:02:38 +00:00
|
|
|
"src/s390/register-s390.h",
|
2016-02-26 16:24:36 +00:00
|
|
|
"src/s390/simulator-s390.cc",
|
|
|
|
"src/s390/simulator-s390.h",
|
2017-10-24 20:14:17 +00:00
|
|
|
"src/wasm/baseline/s390/liftoff-assembler-s390.h",
|
2016-02-26 16:24:36 +00:00
|
|
|
]
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2014-05-05 11:06:26 +00:00
|
|
|
|
|
|
|
defines = []
|
2015-01-08 13:21:52 +00:00
|
|
|
deps = [
|
2019-04-09 12:24:52 +00:00
|
|
|
":torque_generated_definitions",
|
2017-05-02 08:49:38 +00:00
|
|
|
":v8_headers",
|
2015-01-08 13:21:52 +00:00
|
|
|
":v8_libbase",
|
2016-05-26 02:13:58 +00:00
|
|
|
":v8_libsampler",
|
2019-02-25 10:32:56 +00:00
|
|
|
":v8_shared_internal_headers",
|
2019-02-12 08:41:25 +00:00
|
|
|
":v8_version",
|
2017-03-31 08:24:34 +00:00
|
|
|
"src/inspector:inspector",
|
2015-01-08 13:21:52 +00:00
|
|
|
]
|
2014-05-05 11:06:26 +00:00
|
|
|
|
2019-02-13 10:54:08 +00:00
|
|
|
public_deps = [
|
|
|
|
":generate_bytecode_builtins_list",
|
|
|
|
":run_torque",
|
2019-04-10 09:30:39 +00:00
|
|
|
":v8_maybe_icu",
|
2019-02-13 10:54:08 +00:00
|
|
|
]
|
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
if (is_win) {
|
|
|
|
deps += [ "//third_party/icu:icudata" ]
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
sources -= [
|
2017-04-21 08:35:12 +00:00
|
|
|
"src/builtins/builtins-intl.cc",
|
2017-06-14 20:32:49 +00:00
|
|
|
"src/char-predicates.cc",
|
2017-04-21 08:35:12 +00:00
|
|
|
"src/objects/intl-objects.cc",
|
|
|
|
"src/objects/intl-objects.h",
|
2018-09-05 02:17:38 +00:00
|
|
|
"src/objects/js-break-iterator-inl.h",
|
|
|
|
"src/objects/js-break-iterator.cc",
|
|
|
|
"src/objects/js-break-iterator.h",
|
2018-08-08 09:23:07 +00:00
|
|
|
"src/objects/js-collator-inl.h",
|
|
|
|
"src/objects/js-collator.cc",
|
|
|
|
"src/objects/js-collator.h",
|
2018-08-29 04:40:53 +00:00
|
|
|
"src/objects/js-date-time-format-inl.h",
|
|
|
|
"src/objects/js-date-time-format.cc",
|
|
|
|
"src/objects/js-date-time-format.h",
|
2018-07-24 21:07:50 +00:00
|
|
|
"src/objects/js-list-format-inl.h",
|
|
|
|
"src/objects/js-list-format.cc",
|
|
|
|
"src/objects/js-list-format.h",
|
2018-05-15 20:50:46 +00:00
|
|
|
"src/objects/js-locale-inl.h",
|
|
|
|
"src/objects/js-locale.cc",
|
|
|
|
"src/objects/js-locale.h",
|
2018-09-04 18:32:51 +00:00
|
|
|
"src/objects/js-number-format-inl.h",
|
|
|
|
"src/objects/js-number-format.cc",
|
|
|
|
"src/objects/js-number-format.h",
|
2018-08-06 09:31:26 +00:00
|
|
|
"src/objects/js-plural-rules-inl.h",
|
|
|
|
"src/objects/js-plural-rules.cc",
|
|
|
|
"src/objects/js-plural-rules.h",
|
2018-07-10 12:52:05 +00:00
|
|
|
"src/objects/js-relative-time-format-inl.h",
|
|
|
|
"src/objects/js-relative-time-format.cc",
|
|
|
|
"src/objects/js-relative-time-format.h",
|
2018-10-18 07:59:28 +00:00
|
|
|
"src/objects/js-segment-iterator-inl.h",
|
|
|
|
"src/objects/js-segment-iterator.cc",
|
|
|
|
"src/objects/js-segment-iterator.h",
|
2018-10-05 01:57:05 +00:00
|
|
|
"src/objects/js-segmenter-inl.h",
|
|
|
|
"src/objects/js-segmenter.cc",
|
|
|
|
"src/objects/js-segmenter.h",
|
2017-04-21 08:35:12 +00:00
|
|
|
"src/runtime/runtime-intl.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2014-05-26 07:29:39 +00:00
|
|
|
if (v8_postmortem_support) {
|
|
|
|
sources += [ "$target_gen_dir/debug-support.cc" ]
|
|
|
|
deps += [ ":postmortem-metadata" ]
|
|
|
|
}
|
2018-10-02 08:55:17 +00:00
|
|
|
|
|
|
|
# Platforms that don't have CAS support need to link atomic library
|
|
|
|
# to implement atomic memory access
|
|
|
|
if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" ||
|
|
|
|
v8_current_cpu == "mips64" || v8_current_cpu == "mips64el" ||
|
|
|
|
v8_current_cpu == "ppc" || v8_current_cpu == "ppc64" ||
|
|
|
|
v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
|
|
|
|
libs = [ "atomic" ]
|
|
|
|
}
|
2014-05-26 07:29:39 +00:00
|
|
|
}
|
|
|
|
|
2019-04-09 12:34:36 +00:00
|
|
|
group("v8_base") {
|
|
|
|
public_deps = [
|
|
|
|
":v8_base_without_compiler",
|
|
|
|
":v8_compiler",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2018-07-24 13:16:38 +00:00
|
|
|
v8_source_set("torque_base") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"src/torque/ast.h",
|
2018-10-04 20:45:31 +00:00
|
|
|
"src/torque/cfg.cc",
|
|
|
|
"src/torque/cfg.h",
|
2018-07-24 13:16:38 +00:00
|
|
|
"src/torque/contextual.h",
|
2018-10-04 20:45:31 +00:00
|
|
|
"src/torque/csa-generator.cc",
|
|
|
|
"src/torque/csa-generator.h",
|
2018-07-24 13:16:38 +00:00
|
|
|
"src/torque/declarable.cc",
|
|
|
|
"src/torque/declarable.h",
|
|
|
|
"src/torque/declaration-visitor.cc",
|
|
|
|
"src/torque/declaration-visitor.h",
|
|
|
|
"src/torque/declarations.cc",
|
|
|
|
"src/torque/declarations.h",
|
|
|
|
"src/torque/earley-parser.cc",
|
|
|
|
"src/torque/earley-parser.h",
|
|
|
|
"src/torque/file-visitor.cc",
|
|
|
|
"src/torque/file-visitor.h",
|
|
|
|
"src/torque/global-context.h",
|
|
|
|
"src/torque/implementation-visitor.cc",
|
|
|
|
"src/torque/implementation-visitor.h",
|
2018-10-04 20:45:31 +00:00
|
|
|
"src/torque/instructions.cc",
|
|
|
|
"src/torque/instructions.h",
|
2019-02-28 06:12:30 +00:00
|
|
|
"src/torque/server-data.cc",
|
|
|
|
"src/torque/server-data.h",
|
2018-07-24 13:16:38 +00:00
|
|
|
"src/torque/source-positions.cc",
|
|
|
|
"src/torque/source-positions.h",
|
2019-02-19 14:22:14 +00:00
|
|
|
"src/torque/torque-compiler.cc",
|
|
|
|
"src/torque/torque-compiler.h",
|
2018-07-24 13:16:38 +00:00
|
|
|
"src/torque/torque-parser.cc",
|
|
|
|
"src/torque/torque-parser.h",
|
|
|
|
"src/torque/type-oracle.cc",
|
|
|
|
"src/torque/type-oracle.h",
|
|
|
|
"src/torque/types.cc",
|
|
|
|
"src/torque/types.h",
|
|
|
|
"src/torque/utils.cc",
|
|
|
|
"src/torque/utils.h",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
2019-04-12 09:59:19 +00:00
|
|
|
":v8_shared_internal_headers",
|
2019-04-12 04:06:41 +00:00
|
|
|
]
|
|
|
|
|
2019-04-12 04:06:41 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_libbase",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
":internal_config",
|
|
|
|
"//build/config/compiler:exceptions",
|
|
|
|
"//build/config/compiler:rtti",
|
|
|
|
]
|
|
|
|
|
|
|
|
remove_configs = [
|
|
|
|
"//build/config/compiler:no_exceptions",
|
|
|
|
"//build/config/compiler:no_rtti",
|
|
|
|
]
|
|
|
|
|
2019-01-23 15:17:35 +00:00
|
|
|
if (is_win && is_asan) {
|
2019-04-12 04:06:41 +00:00
|
|
|
remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
|
2019-01-23 15:17:35 +00:00
|
|
|
}
|
2018-07-24 13:16:38 +00:00
|
|
|
}
|
|
|
|
|
2019-02-26 06:56:08 +00:00
|
|
|
v8_source_set("torque_ls_base") {
|
|
|
|
sources = [
|
2019-03-01 07:50:42 +00:00
|
|
|
"src/torque/ls/globals.h",
|
2019-02-26 06:56:08 +00:00
|
|
|
"src/torque/ls/json-parser.cc",
|
|
|
|
"src/torque/ls/json-parser.h",
|
|
|
|
"src/torque/ls/json.cc",
|
|
|
|
"src/torque/ls/json.h",
|
2019-03-01 07:50:42 +00:00
|
|
|
"src/torque/ls/message-handler.cc",
|
|
|
|
"src/torque/ls/message-handler.h",
|
|
|
|
"src/torque/ls/message-macros.h",
|
|
|
|
"src/torque/ls/message-pipe.h",
|
|
|
|
"src/torque/ls/message.h",
|
2019-02-26 06:56:08 +00:00
|
|
|
]
|
|
|
|
|
2019-04-12 04:06:41 +00:00
|
|
|
public_deps = [
|
2019-02-26 06:56:08 +00:00
|
|
|
":torque_base",
|
|
|
|
]
|
|
|
|
|
2019-04-12 04:06:41 +00:00
|
|
|
configs = [
|
|
|
|
":internal_config",
|
|
|
|
"//build/config/compiler:exceptions",
|
|
|
|
"//build/config/compiler:rtti",
|
|
|
|
]
|
|
|
|
|
|
|
|
remove_configs = [
|
|
|
|
"//build/config/compiler:no_exceptions",
|
|
|
|
"//build/config/compiler:no_rtti",
|
|
|
|
]
|
|
|
|
|
2019-02-26 06:56:08 +00:00
|
|
|
if (is_win && is_asan) {
|
2019-04-12 04:06:41 +00:00
|
|
|
remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
|
2019-02-26 06:56:08 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-07 07:56:43 +00:00
|
|
|
v8_component("v8_libbase") {
|
2014-05-26 07:29:39 +00:00
|
|
|
sources = [
|
2015-04-20 16:24:52 +00:00
|
|
|
"src/base/adapters.h",
|
2018-09-17 11:32:01 +00:00
|
|
|
"src/base/address-region.h",
|
2016-05-09 16:22:09 +00:00
|
|
|
"src/base/atomic-utils.h",
|
2014-06-05 12:14:47 +00:00
|
|
|
"src/base/atomicops.h",
|
|
|
|
"src/base/atomicops_internals_atomicword_compat.h",
|
2016-10-21 10:05:32 +00:00
|
|
|
"src/base/atomicops_internals_portable.h",
|
2017-08-19 17:45:44 +00:00
|
|
|
"src/base/atomicops_internals_std.h",
|
2016-10-07 07:56:43 +00:00
|
|
|
"src/base/base-export.h",
|
2014-09-02 13:36:35 +00:00
|
|
|
"src/base/bits.cc",
|
2014-08-14 09:07:58 +00:00
|
|
|
"src/base/bits.h",
|
2018-09-15 19:13:23 +00:00
|
|
|
"src/base/bounded-page-allocator.cc",
|
|
|
|
"src/base/bounded-page-allocator.h",
|
2014-05-28 08:07:18 +00:00
|
|
|
"src/base/build_config.h",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/base/compiler-specific.h",
|
2014-06-30 13:25:46 +00:00
|
|
|
"src/base/cpu.cc",
|
|
|
|
"src/base/cpu.h",
|
2016-08-18 14:25:19 +00:00
|
|
|
"src/base/debug/stack_trace.cc",
|
|
|
|
"src/base/debug/stack_trace.h",
|
2014-09-05 11:48:47 +00:00
|
|
|
"src/base/division-by-constant.cc",
|
|
|
|
"src/base/division-by-constant.h",
|
2019-01-14 16:52:32 +00:00
|
|
|
"src/base/enum-set.h",
|
2017-05-03 09:58:03 +00:00
|
|
|
"src/base/export-template.h",
|
2016-06-08 12:09:25 +00:00
|
|
|
"src/base/file-utils.cc",
|
|
|
|
"src/base/file-utils.h",
|
2014-08-27 12:16:36 +00:00
|
|
|
"src/base/flags.h",
|
2016-04-12 16:13:08 +00:00
|
|
|
"src/base/format-macros.h",
|
2016-08-18 14:25:19 +00:00
|
|
|
"src/base/free_deleter.h",
|
2014-10-06 12:27:24 +00:00
|
|
|
"src/base/functional.cc",
|
|
|
|
"src/base/functional.h",
|
2016-09-20 08:40:04 +00:00
|
|
|
"src/base/hashmap-entry.h",
|
2016-06-09 17:58:10 +00:00
|
|
|
"src/base/hashmap.h",
|
2016-06-10 05:51:58 +00:00
|
|
|
"src/base/ieee754.cc",
|
|
|
|
"src/base/ieee754.h",
|
2014-12-16 07:31:46 +00:00
|
|
|
"src/base/iterator.h",
|
2014-06-05 12:14:47 +00:00
|
|
|
"src/base/lazy-instance.h",
|
2018-05-22 16:58:12 +00:00
|
|
|
"src/base/list.h",
|
2014-06-30 13:25:46 +00:00
|
|
|
"src/base/logging.cc",
|
|
|
|
"src/base/logging.h",
|
2018-09-17 10:01:09 +00:00
|
|
|
"src/base/lsan-page-allocator.cc",
|
|
|
|
"src/base/lsan-page-allocator.h",
|
2014-05-26 07:29:39 +00:00
|
|
|
"src/base/macros.h",
|
2014-06-05 12:14:47 +00:00
|
|
|
"src/base/once.cc",
|
|
|
|
"src/base/once.h",
|
2017-06-09 10:48:12 +00:00
|
|
|
"src/base/optional.h",
|
2019-01-10 10:38:25 +00:00
|
|
|
"src/base/overflowing-math.h",
|
2017-12-21 18:09:26 +00:00
|
|
|
"src/base/page-allocator.cc",
|
|
|
|
"src/base/page-allocator.h",
|
2014-06-30 13:25:46 +00:00
|
|
|
"src/base/platform/condition-variable.cc",
|
|
|
|
"src/base/platform/condition-variable.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/base/platform/elapsed-timer.h",
|
2014-06-30 13:25:46 +00:00
|
|
|
"src/base/platform/mutex.cc",
|
|
|
|
"src/base/platform/mutex.h",
|
|
|
|
"src/base/platform/platform.h",
|
|
|
|
"src/base/platform/semaphore.cc",
|
|
|
|
"src/base/platform/semaphore.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/base/platform/time.cc",
|
|
|
|
"src/base/platform/time.h",
|
2018-08-30 13:38:28 +00:00
|
|
|
"src/base/region-allocator.cc",
|
|
|
|
"src/base/region-allocator.h",
|
2016-10-14 08:12:16 +00:00
|
|
|
"src/base/ring-buffer.h",
|
2014-06-18 11:01:54 +00:00
|
|
|
"src/base/safe_conversions.h",
|
|
|
|
"src/base/safe_conversions_impl.h",
|
2018-12-18 13:47:18 +00:00
|
|
|
"src/base/small-vector.h",
|
2014-08-27 08:29:22 +00:00
|
|
|
"src/base/sys-info.cc",
|
|
|
|
"src/base/sys-info.h",
|
2017-05-30 08:47:37 +00:00
|
|
|
"src/base/template-utils.h",
|
2017-03-03 13:54:57 +00:00
|
|
|
"src/base/timezone-cache.h",
|
2017-09-08 18:01:20 +00:00
|
|
|
"src/base/tsan.h",
|
2014-06-30 13:25:46 +00:00
|
|
|
"src/base/utils/random-number-generator.cc",
|
|
|
|
"src/base/utils/random-number-generator.h",
|
2014-05-26 07:29:39 +00:00
|
|
|
]
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config_base" ]
|
2014-06-30 13:25:46 +00:00
|
|
|
|
2016-10-07 07:56:43 +00:00
|
|
|
public_configs = [ ":libbase_config" ]
|
|
|
|
|
2019-02-12 08:41:25 +00:00
|
|
|
deps = [
|
|
|
|
":v8_headers",
|
|
|
|
]
|
|
|
|
|
2018-05-15 07:57:44 +00:00
|
|
|
public_deps = []
|
|
|
|
|
2018-03-26 07:00:19 +00:00
|
|
|
data = []
|
|
|
|
|
2018-04-09 06:36:36 +00:00
|
|
|
data_deps = []
|
|
|
|
|
2014-06-30 13:25:46 +00:00
|
|
|
defines = []
|
|
|
|
|
2016-10-07 07:56:43 +00:00
|
|
|
if (is_component_build) {
|
|
|
|
defines = [ "BUILDING_V8_BASE_SHARED" ]
|
|
|
|
}
|
|
|
|
|
2018-03-30 17:55:49 +00:00
|
|
|
if (is_posix || is_fuchsia) {
|
2017-03-03 13:54:57 +00:00
|
|
|
sources += [
|
|
|
|
"src/base/platform/platform-posix.cc",
|
|
|
|
"src/base/platform/platform-posix.h",
|
|
|
|
]
|
2018-02-01 19:52:44 +00:00
|
|
|
if (current_os != "aix") {
|
|
|
|
sources += [
|
|
|
|
"src/base/platform/platform-posix-time.cc",
|
2018-02-09 12:38:11 +00:00
|
|
|
"src/base/platform/platform-posix-time.h",
|
2018-02-01 19:52:44 +00:00
|
|
|
]
|
|
|
|
}
|
2014-06-30 13:25:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (is_linux) {
|
2016-08-18 14:25:19 +00:00
|
|
|
sources += [
|
|
|
|
"src/base/debug/stack_trace_posix.cc",
|
|
|
|
"src/base/platform/platform-linux.cc",
|
|
|
|
]
|
2014-06-30 13:25:46 +00:00
|
|
|
|
2016-03-31 07:30:16 +00:00
|
|
|
libs = [
|
|
|
|
"dl",
|
2017-05-12 01:35:09 +00:00
|
|
|
"rt",
|
|
|
|
]
|
|
|
|
} else if (current_os == "aix") {
|
|
|
|
sources += [
|
|
|
|
"src/base/debug/stack_trace_posix.cc",
|
|
|
|
"src/base/platform/platform-aix.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
libs = [
|
|
|
|
"dl",
|
2016-03-31 07:30:16 +00:00
|
|
|
"rt",
|
|
|
|
]
|
2014-06-30 13:25:46 +00:00
|
|
|
} else if (is_android) {
|
2015-03-31 12:08:10 +00:00
|
|
|
if (current_toolchain == host_toolchain) {
|
2016-03-31 07:30:16 +00:00
|
|
|
libs = [
|
|
|
|
"dl",
|
|
|
|
"rt",
|
|
|
|
]
|
2015-03-31 12:08:10 +00:00
|
|
|
if (host_os == "mac") {
|
2016-08-18 14:25:19 +00:00
|
|
|
sources += [
|
|
|
|
"src/base/debug/stack_trace_posix.cc",
|
|
|
|
"src/base/platform/platform-macos.cc",
|
|
|
|
]
|
2014-06-30 13:25:46 +00:00
|
|
|
} else {
|
2016-08-18 14:25:19 +00:00
|
|
|
sources += [
|
|
|
|
"src/base/debug/stack_trace_posix.cc",
|
|
|
|
"src/base/platform/platform-linux.cc",
|
|
|
|
]
|
2014-06-30 13:25:46 +00:00
|
|
|
}
|
|
|
|
} else {
|
2016-08-18 14:25:19 +00:00
|
|
|
sources += [
|
|
|
|
"src/base/debug/stack_trace_android.cc",
|
|
|
|
"src/base/platform/platform-linux.cc",
|
|
|
|
]
|
2014-06-30 13:25:46 +00:00
|
|
|
}
|
2017-06-11 14:34:32 +00:00
|
|
|
} else if (is_fuchsia) {
|
|
|
|
sources += [
|
|
|
|
"src/base/debug/stack_trace_fuchsia.cc",
|
|
|
|
"src/base/platform/platform-fuchsia.cc",
|
|
|
|
]
|
2019-04-16 12:21:36 +00:00
|
|
|
} else if (is_mac || is_ios) {
|
2016-08-18 14:25:19 +00:00
|
|
|
sources += [
|
|
|
|
"src/base/debug/stack_trace_posix.cc",
|
|
|
|
"src/base/platform/platform-macos.cc",
|
|
|
|
]
|
2014-06-30 13:25:46 +00:00
|
|
|
} else if (is_win) {
|
|
|
|
# TODO(jochen): Add support for cygwin.
|
|
|
|
sources += [
|
2016-08-18 14:25:19 +00:00
|
|
|
"src/base/debug/stack_trace_win.cc",
|
2014-06-30 13:25:46 +00:00
|
|
|
"src/base/platform/platform-win32.cc",
|
2014-07-17 17:39:54 +00:00
|
|
|
"src/base/win32-headers.h",
|
2014-06-30 13:25:46 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
defines += [ "_CRT_RAND_S" ] # for rand_s()
|
|
|
|
|
2015-01-08 13:21:52 +00:00
|
|
|
libs = [
|
2016-08-18 14:25:19 +00:00
|
|
|
"dbghelp.lib",
|
2015-01-08 13:21:52 +00:00
|
|
|
"winmm.lib",
|
|
|
|
"ws2_32.lib",
|
|
|
|
]
|
2018-03-26 07:00:19 +00:00
|
|
|
|
2018-04-09 06:36:36 +00:00
|
|
|
data_deps += [ "//build/win:runtime_libs" ]
|
2014-06-30 13:25:46 +00:00
|
|
|
}
|
|
|
|
|
2018-11-02 13:09:47 +00:00
|
|
|
if (v8_current_cpu == "mips" || v8_current_cpu == "mips64") {
|
|
|
|
# Add runtime libs for mips.
|
|
|
|
data += [
|
|
|
|
"tools/mips_toolchain/sysroot/usr/lib/",
|
|
|
|
"tools/mips_toolchain/mips-mti-linux-gnu/lib",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2018-03-26 11:29:32 +00:00
|
|
|
if (is_tsan && !build_with_chromium) {
|
|
|
|
data += [ "tools/sanitizers/tsan_suppressions.txt" ]
|
|
|
|
}
|
|
|
|
|
2014-06-30 13:25:46 +00:00
|
|
|
# TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris.
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
2016-10-10 08:51:48 +00:00
|
|
|
v8_component("v8_libplatform") {
|
2014-07-03 07:37:27 +00:00
|
|
|
sources = [
|
2016-08-02 17:12:20 +00:00
|
|
|
"//base/trace_event/common/trace_event_common.h",
|
2016-10-10 08:51:48 +00:00
|
|
|
"include/libplatform/libplatform-export.h",
|
2014-07-03 07:37:27 +00:00
|
|
|
"include/libplatform/libplatform.h",
|
2016-07-27 16:21:09 +00:00
|
|
|
"include/libplatform/v8-tracing.h",
|
2017-11-15 12:07:22 +00:00
|
|
|
"src/libplatform/default-foreground-task-runner.cc",
|
|
|
|
"src/libplatform/default-foreground-task-runner.h",
|
2014-07-03 07:37:27 +00:00
|
|
|
"src/libplatform/default-platform.cc",
|
|
|
|
"src/libplatform/default-platform.h",
|
2018-03-26 16:44:23 +00:00
|
|
|
"src/libplatform/default-worker-threads-task-runner.cc",
|
|
|
|
"src/libplatform/default-worker-threads-task-runner.h",
|
2019-03-19 09:23:34 +00:00
|
|
|
"src/libplatform/delayed-task-queue.cc",
|
|
|
|
"src/libplatform/delayed-task-queue.h",
|
2014-07-03 07:37:27 +00:00
|
|
|
"src/libplatform/task-queue.cc",
|
|
|
|
"src/libplatform/task-queue.h",
|
2016-07-27 16:21:09 +00:00
|
|
|
"src/libplatform/tracing/trace-buffer.cc",
|
|
|
|
"src/libplatform/tracing/trace-buffer.h",
|
|
|
|
"src/libplatform/tracing/trace-config.cc",
|
|
|
|
"src/libplatform/tracing/trace-object.cc",
|
|
|
|
"src/libplatform/tracing/trace-writer.cc",
|
|
|
|
"src/libplatform/tracing/trace-writer.h",
|
|
|
|
"src/libplatform/tracing/tracing-controller.cc",
|
2014-07-03 07:37:27 +00:00
|
|
|
"src/libplatform/worker-thread.cc",
|
|
|
|
"src/libplatform/worker-thread.h",
|
|
|
|
]
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config_base" ]
|
2014-07-03 07:37:27 +00:00
|
|
|
|
2016-10-10 08:51:48 +00:00
|
|
|
if (is_component_build) {
|
|
|
|
defines = [ "BUILDING_V8_PLATFORM_SHARED" ]
|
|
|
|
}
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
public_configs = [ ":libplatform_config" ]
|
2016-05-11 12:03:16 +00:00
|
|
|
|
2014-07-03 07:37:27 +00:00
|
|
|
deps = [
|
2019-02-12 08:41:25 +00:00
|
|
|
":v8_headers",
|
2014-07-03 07:37:27 +00:00
|
|
|
":v8_libbase",
|
|
|
|
]
|
2019-03-28 08:52:41 +00:00
|
|
|
if (v8_use_perfetto) {
|
|
|
|
deps += [ "third_party/perfetto:libperfetto" ]
|
|
|
|
}
|
2014-07-03 07:37:27 +00:00
|
|
|
}
|
|
|
|
|
2016-05-26 02:13:58 +00:00
|
|
|
v8_source_set("v8_libsampler") {
|
|
|
|
sources = [
|
2016-07-08 06:44:46 +00:00
|
|
|
"src/libsampler/sampler.cc",
|
|
|
|
"src/libsampler/sampler.h",
|
2016-05-26 02:13:58 +00:00
|
|
|
]
|
|
|
|
|
2019-02-11 16:11:08 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2016-05-26 02:13:58 +00:00
|
|
|
|
|
|
|
public_configs = [ ":libsampler_config" ]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":v8_libbase",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("fuzzer_support") {
|
2016-01-26 12:19:28 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/fuzzer-support.cc",
|
|
|
|
"test/fuzzer/fuzzer-support.h",
|
|
|
|
]
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config_base" ]
|
2016-01-26 12:19:28 +00:00
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
deps = [
|
|
|
|
":v8",
|
|
|
|
]
|
|
|
|
|
|
|
|
public_deps = [
|
2016-10-10 08:51:48 +00:00
|
|
|
":v8_libbase",
|
2016-09-26 07:40:24 +00:00
|
|
|
":v8_libplatform",
|
2019-04-10 09:30:39 +00:00
|
|
|
":v8_maybe_icu",
|
2016-09-26 07:40:24 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-11-27 09:36:01 +00:00
|
|
|
###############################################################################
|
|
|
|
# Produce a single static library for embedders
|
|
|
|
#
|
|
|
|
|
|
|
|
if (v8_monolithic) {
|
|
|
|
# A component build is not monolithic.
|
|
|
|
assert(!is_component_build)
|
|
|
|
|
|
|
|
# Using external startup data would produce separate files.
|
|
|
|
assert(!v8_use_external_startup_data)
|
|
|
|
v8_static_library("v8_monolith") {
|
|
|
|
deps = [
|
|
|
|
":v8",
|
|
|
|
":v8_libbase",
|
|
|
|
":v8_libplatform",
|
|
|
|
":v8_libsampler",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-17 14:50:31 +00:00
|
|
|
v8_static_library("wee8") {
|
|
|
|
deps = [
|
|
|
|
":v8_base",
|
|
|
|
":v8_libbase",
|
|
|
|
":v8_libplatform",
|
|
|
|
":v8_libsampler",
|
|
|
|
":v8_maybe_snapshot",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
|
|
|
# TODO: v8dll-main.cc equivalent for shared library builds
|
|
|
|
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"src/wasm/c-api.cc",
|
|
|
|
"third_party/wasm-c-api/wasm.h",
|
|
|
|
"third_party/wasm-c-api/wasm.hh",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
###############################################################################
|
|
|
|
# Executables
|
|
|
|
#
|
|
|
|
|
2018-09-12 11:55:04 +00:00
|
|
|
if (current_toolchain == v8_generator_toolchain) {
|
2018-09-11 10:27:03 +00:00
|
|
|
v8_executable("bytecode_builtins_list_generator") {
|
2018-09-10 12:55:45 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
include_dirs = [ "." ]
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"src/builtins/generate-bytecodes-builtins-list.cc",
|
|
|
|
"src/interpreter/bytecode-operands.cc",
|
|
|
|
"src/interpreter/bytecode-operands.h",
|
|
|
|
"src/interpreter/bytecodes.cc",
|
|
|
|
"src/interpreter/bytecodes.h",
|
|
|
|
]
|
|
|
|
|
2018-09-11 10:27:03 +00:00
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
|
2018-09-10 12:55:45 +00:00
|
|
|
deps = [
|
|
|
|
":v8_libbase",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-11-20 08:12:49 +00:00
|
|
|
if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) {
|
2016-06-14 10:07:22 +00:00
|
|
|
v8_executable("mksnapshot") {
|
2014-09-09 08:57:29 +00:00
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
2014-06-03 06:50:46 +00:00
|
|
|
|
2014-06-05 08:45:24 +00:00
|
|
|
sources = [
|
2018-11-15 14:10:59 +00:00
|
|
|
"src/snapshot/embedded-file-writer.cc",
|
|
|
|
"src/snapshot/embedded-file-writer.h",
|
2015-03-27 15:28:55 +00:00
|
|
|
"src/snapshot/mksnapshot.cc",
|
2014-06-05 08:45:24 +00:00
|
|
|
]
|
2014-05-05 11:06:26 +00:00
|
|
|
|
2016-06-20 05:51:37 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2014-06-04 15:21:26 +00:00
|
|
|
|
2014-06-05 08:45:24 +00:00
|
|
|
deps = [
|
2019-04-09 12:34:36 +00:00
|
|
|
":v8_base_without_compiler",
|
|
|
|
":v8_compiler_for_mksnapshot",
|
2017-09-06 10:48:08 +00:00
|
|
|
":v8_init",
|
2016-10-07 07:56:43 +00:00
|
|
|
":v8_libbase",
|
2014-07-03 07:37:27 +00:00
|
|
|
":v8_libplatform",
|
2014-06-05 08:45:24 +00:00
|
|
|
":v8_nosnapshot",
|
2016-05-02 16:46:13 +00:00
|
|
|
"//build/win:default_exe_manifest",
|
2014-06-05 08:45:24 +00:00
|
|
|
]
|
2019-01-03 01:13:42 +00:00
|
|
|
|
|
|
|
if (target_os == "fuchsia") {
|
|
|
|
defines = [ "V8_TARGET_OS_FUCHSIA" ]
|
2019-03-19 17:43:32 +00:00
|
|
|
} else if (target_os == "win") {
|
|
|
|
defines = [ "V8_TARGET_OS_WIN" ]
|
2019-04-17 23:13:47 +00:00
|
|
|
} else if (target_os == "chromeos") {
|
|
|
|
defines = [ "V8_TARGET_OS_CHROMEOS" ]
|
2019-01-03 01:13:42 +00:00
|
|
|
}
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
2015-01-08 10:48:04 +00:00
|
|
|
}
|
|
|
|
|
2018-04-16 09:24:22 +00:00
|
|
|
if (current_toolchain == v8_snapshot_toolchain) {
|
|
|
|
v8_executable("torque") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"src/torque/torque.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
2018-07-24 13:16:38 +00:00
|
|
|
":torque_base",
|
2018-04-16 09:24:22 +00:00
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
2019-04-12 04:06:41 +00:00
|
|
|
configs = [
|
|
|
|
":internal_config",
|
|
|
|
"//build/config/compiler:exceptions",
|
|
|
|
"//build/config/compiler:rtti",
|
|
|
|
]
|
|
|
|
|
|
|
|
remove_configs = [
|
|
|
|
"//build/config/compiler:no_exceptions",
|
|
|
|
"//build/config/compiler:no_rtti",
|
|
|
|
]
|
|
|
|
|
2019-01-23 15:17:35 +00:00
|
|
|
if (is_win && is_asan) {
|
2019-04-12 04:06:41 +00:00
|
|
|
remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
|
2019-01-23 15:17:35 +00:00
|
|
|
}
|
2018-04-16 09:24:22 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-03-01 07:50:42 +00:00
|
|
|
v8_executable("torque-language-server") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"src/torque/ls/torque-language-server.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":torque_base",
|
|
|
|
":torque_ls_base",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
2019-04-12 04:06:41 +00:00
|
|
|
configs = [
|
|
|
|
":internal_config",
|
|
|
|
"//build/config/compiler:exceptions",
|
|
|
|
"//build/config/compiler:rtti",
|
|
|
|
]
|
|
|
|
|
|
|
|
remove_configs = [
|
|
|
|
"//build/config/compiler:no_exceptions",
|
|
|
|
"//build/config/compiler:no_rtti",
|
|
|
|
]
|
|
|
|
|
2019-03-01 07:50:42 +00:00
|
|
|
if (is_win && is_asan) {
|
2019-04-12 04:06:41 +00:00
|
|
|
remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
|
2019-03-01 07:50:42 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-01-08 13:21:52 +00:00
|
|
|
###############################################################################
|
|
|
|
# Public targets
|
|
|
|
#
|
2015-01-08 05:16:32 +00:00
|
|
|
|
2016-06-08 12:09:25 +00:00
|
|
|
want_v8_shell =
|
2016-06-01 12:28:57 +00:00
|
|
|
(current_toolchain == host_toolchain && v8_toolset_for_shell == "host") ||
|
|
|
|
(current_toolchain == v8_snapshot_toolchain &&
|
|
|
|
v8_toolset_for_shell == "host") ||
|
2016-06-08 12:09:25 +00:00
|
|
|
(current_toolchain != host_toolchain && v8_toolset_for_shell == "target")
|
2016-06-01 12:28:57 +00:00
|
|
|
|
|
|
|
group("gn_all") {
|
|
|
|
testonly = true
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":d8",
|
2017-01-13 09:09:26 +00:00
|
|
|
":v8_fuzzers",
|
2016-06-22 13:36:44 +00:00
|
|
|
":v8_hello_world",
|
|
|
|
":v8_sample_process",
|
2016-06-03 13:46:08 +00:00
|
|
|
"test:gn_all",
|
|
|
|
"tools:gn_all",
|
2016-06-01 12:28:57 +00:00
|
|
|
]
|
|
|
|
|
2018-06-11 11:49:00 +00:00
|
|
|
if (v8_custom_deps != "") {
|
|
|
|
# Custom dependency from directory under v8/custom_deps.
|
|
|
|
deps += [ v8_custom_deps ]
|
|
|
|
}
|
|
|
|
|
2016-06-01 12:28:57 +00:00
|
|
|
if (want_v8_shell) {
|
2016-06-08 12:09:25 +00:00
|
|
|
deps += [ ":v8_shell" ]
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-02-02 11:32:52 +00:00
|
|
|
group("v8_clusterfuzz") {
|
2017-10-31 13:14:41 +00:00
|
|
|
testonly = true
|
|
|
|
|
2017-02-02 11:32:52 +00:00
|
|
|
deps = [
|
|
|
|
":d8",
|
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_multi_arch_build) {
|
|
|
|
deps += [
|
|
|
|
":d8(//build/toolchain/linux:clang_x64)",
|
2017-02-13 10:42:08 +00:00
|
|
|
":d8(//build/toolchain/linux:clang_x64_v8_arm64)",
|
2017-02-14 15:19:03 +00:00
|
|
|
":d8(//build/toolchain/linux:clang_x86)",
|
2017-02-13 10:42:08 +00:00
|
|
|
":d8(//build/toolchain/linux:clang_x86_v8_arm)",
|
2017-02-02 11:32:52 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-06-22 14:11:01 +00:00
|
|
|
group("v8_archive") {
|
2018-11-10 08:20:16 +00:00
|
|
|
testonly = true
|
|
|
|
|
2017-06-22 14:11:01 +00:00
|
|
|
deps = [
|
|
|
|
":d8",
|
|
|
|
]
|
2018-11-15 11:49:19 +00:00
|
|
|
|
|
|
|
if (!is_win) {
|
|
|
|
# On windows, cctest doesn't link with v8_static_library.
|
|
|
|
deps += [ "test/cctest:cctest" ]
|
|
|
|
}
|
2017-06-22 14:11:01 +00:00
|
|
|
}
|
|
|
|
|
2018-09-15 02:51:06 +00:00
|
|
|
# TODO(dglazkov): Remove the "!build_with_chromium" condition once this clause
|
|
|
|
# is removed from Chromium.
|
|
|
|
if (is_fuchsia && !build_with_chromium) {
|
|
|
|
import("//build/config/fuchsia/rules.gni")
|
|
|
|
|
|
|
|
fuchsia_package("d8_fuchsia_pkg") {
|
|
|
|
testonly = true
|
|
|
|
binary = ":d8"
|
|
|
|
package_name_override = "d8"
|
|
|
|
}
|
|
|
|
|
|
|
|
fuchsia_package_runner("d8_fuchsia") {
|
|
|
|
testonly = true
|
|
|
|
package = ":d8_fuchsia_pkg"
|
|
|
|
package_name_override = "d8"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-13 09:09:26 +00:00
|
|
|
group("v8_fuzzers") {
|
|
|
|
testonly = true
|
2018-03-26 13:12:27 +00:00
|
|
|
data_deps = [
|
2017-01-13 09:09:26 +00:00
|
|
|
":v8_simple_json_fuzzer",
|
2018-01-12 10:57:34 +00:00
|
|
|
":v8_simple_multi_return_fuzzer",
|
2017-01-13 09:09:26 +00:00
|
|
|
":v8_simple_parser_fuzzer",
|
2018-01-18 10:27:08 +00:00
|
|
|
":v8_simple_regexp_builtins_fuzzer",
|
2017-01-13 09:09:26 +00:00
|
|
|
":v8_simple_regexp_fuzzer",
|
2017-06-13 14:41:54 +00:00
|
|
|
":v8_simple_wasm_async_fuzzer",
|
2017-01-13 09:09:26 +00:00
|
|
|
":v8_simple_wasm_code_fuzzer",
|
2017-04-12 11:30:33 +00:00
|
|
|
":v8_simple_wasm_compile_fuzzer",
|
2017-01-13 09:09:26 +00:00
|
|
|
":v8_simple_wasm_fuzzer",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2015-06-09 08:36:09 +00:00
|
|
|
if (is_component_build) {
|
2016-06-14 10:07:22 +00:00
|
|
|
v8_component("v8") {
|
2015-01-08 13:21:52 +00:00
|
|
|
sources = [
|
|
|
|
"src/v8dll-main.cc",
|
2015-01-08 10:48:04 +00:00
|
|
|
]
|
2015-01-08 13:21:52 +00:00
|
|
|
|
2015-09-18 09:32:30 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_base",
|
2016-06-01 12:28:57 +00:00
|
|
|
":v8_maybe_snapshot",
|
2015-09-18 09:32:30 +00:00
|
|
|
]
|
2015-01-08 13:21:52 +00:00
|
|
|
|
2016-06-20 05:51:37 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2015-01-08 10:48:04 +00:00
|
|
|
|
2015-04-09 19:36:02 +00:00
|
|
|
public_configs = [ ":external_config" ]
|
2015-01-08 13:21:52 +00:00
|
|
|
}
|
2017-05-03 09:58:03 +00:00
|
|
|
|
|
|
|
v8_component("v8_for_testing") {
|
|
|
|
testonly = true
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"src/v8dll-main.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
public_deps = [
|
2018-07-24 13:16:38 +00:00
|
|
|
":torque_base",
|
2019-03-04 15:24:39 +00:00
|
|
|
":torque_ls_base",
|
2017-05-03 09:58:03 +00:00
|
|
|
":v8_base",
|
2019-02-15 15:10:20 +00:00
|
|
|
":v8_headers",
|
2017-05-03 09:58:03 +00:00
|
|
|
":v8_maybe_snapshot",
|
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_use_snapshot) {
|
2017-09-06 10:48:08 +00:00
|
|
|
public_deps += [ ":v8_initializers" ]
|
2017-05-03 09:58:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
|
|
|
|
public_configs = [ ":external_config" ]
|
|
|
|
}
|
2015-01-08 13:21:52 +00:00
|
|
|
} else {
|
|
|
|
group("v8") {
|
2015-09-18 09:32:30 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_base",
|
2016-06-01 12:28:57 +00:00
|
|
|
":v8_maybe_snapshot",
|
2015-09-18 09:32:30 +00:00
|
|
|
]
|
2016-11-28 10:41:47 +00:00
|
|
|
|
2015-04-09 19:36:02 +00:00
|
|
|
public_configs = [ ":external_config" ]
|
2015-01-08 13:21:52 +00:00
|
|
|
}
|
2017-05-03 09:58:03 +00:00
|
|
|
|
|
|
|
group("v8_for_testing") {
|
|
|
|
testonly = true
|
|
|
|
|
|
|
|
public_deps = [
|
2018-07-24 13:16:38 +00:00
|
|
|
":torque_base",
|
2019-03-04 15:24:39 +00:00
|
|
|
":torque_ls_base",
|
2017-05-03 09:58:03 +00:00
|
|
|
":v8_base",
|
|
|
|
":v8_maybe_snapshot",
|
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_use_snapshot) {
|
2017-09-06 10:48:08 +00:00
|
|
|
public_deps += [ ":v8_initializers" ]
|
2017-05-03 09:58:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public_configs = [ ":external_config" ]
|
|
|
|
}
|
2014-05-28 11:48:55 +00:00
|
|
|
}
|
2015-01-20 11:31:44 +00:00
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
v8_executable("d8") {
|
2016-05-13 16:11:24 +00:00
|
|
|
sources = [
|
2018-07-04 15:02:09 +00:00
|
|
|
"src/async-hooks-wrapper.cc",
|
|
|
|
"src/async-hooks-wrapper.h",
|
2017-04-24 13:23:10 +00:00
|
|
|
"src/d8-console.cc",
|
|
|
|
"src/d8-console.h",
|
2019-01-08 14:22:38 +00:00
|
|
|
"src/d8-js.cc",
|
2018-10-09 13:04:29 +00:00
|
|
|
"src/d8-platforms.cc",
|
|
|
|
"src/d8-platforms.h",
|
2016-05-13 16:11:24 +00:00
|
|
|
"src/d8.cc",
|
|
|
|
"src/d8.h",
|
|
|
|
]
|
2015-01-20 11:31:44 +00:00
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
configs = [
|
2016-05-13 16:11:24 +00:00
|
|
|
# Note: don't use :internal_config here because this target will get
|
|
|
|
# the :external_config applied to it by virtue of depending on :v8, and
|
|
|
|
# you can't have both applied to the same target.
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
2015-01-20 11:31:44 +00:00
|
|
|
|
2016-05-13 16:11:24 +00:00
|
|
|
deps = [
|
|
|
|
":v8",
|
2016-10-07 07:56:43 +00:00
|
|
|
":v8_libbase",
|
2016-05-13 16:11:24 +00:00
|
|
|
":v8_libplatform",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
2015-01-20 11:31:44 +00:00
|
|
|
|
2018-03-30 17:55:49 +00:00
|
|
|
if (is_posix || is_fuchsia) {
|
2016-05-13 16:11:24 +00:00
|
|
|
sources += [ "src/d8-posix.cc" ]
|
|
|
|
} else if (is_win) {
|
|
|
|
sources += [ "src/d8-windows.cc" ]
|
|
|
|
}
|
2015-01-20 11:31:44 +00:00
|
|
|
|
2017-01-10 10:19:21 +00:00
|
|
|
if (v8_correctness_fuzzer) {
|
2018-02-22 01:27:40 +00:00
|
|
|
deps += [ "tools/clusterfuzz:v8_correctness_fuzzer_resources" ]
|
2017-01-10 10:19:21 +00:00
|
|
|
}
|
|
|
|
|
2016-10-21 06:37:29 +00:00
|
|
|
defines = []
|
2017-02-13 02:54:05 +00:00
|
|
|
|
|
|
|
if (v8_enable_vtunejit) {
|
2018-03-27 16:22:47 +00:00
|
|
|
deps += [ "src/third_party/vtune:v8_vtune" ]
|
2017-02-13 02:54:05 +00:00
|
|
|
}
|
2015-01-20 11:31:44 +00:00
|
|
|
}
|
2016-01-26 12:19:28 +00:00
|
|
|
|
2016-06-22 13:36:44 +00:00
|
|
|
v8_executable("v8_hello_world") {
|
|
|
|
sources = [
|
|
|
|
"samples/hello-world.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
# Note: don't use :internal_config here because this target will get
|
|
|
|
# the :external_config applied to it by virtue of depending on :v8, and
|
|
|
|
# you can't have both applied to the same target.
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":v8",
|
2016-10-07 07:56:43 +00:00
|
|
|
":v8_libbase",
|
2016-06-22 13:36:44 +00:00
|
|
|
":v8_libplatform",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_executable("v8_sample_process") {
|
|
|
|
sources = [
|
|
|
|
"samples/process.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
# Note: don't use :internal_config here because this target will get
|
|
|
|
# the :external_config applied to it by virtue of depending on :v8, and
|
|
|
|
# you can't have both applied to the same target.
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
|
2016-06-27 11:55:33 +00:00
|
|
|
deps = [
|
2016-10-14 08:35:20 +00:00
|
|
|
":v8",
|
2016-10-07 07:56:43 +00:00
|
|
|
":v8_libbase",
|
2016-06-27 11:55:33 +00:00
|
|
|
":v8_libplatform",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2016-06-01 12:28:57 +00:00
|
|
|
if (want_v8_shell) {
|
2016-06-14 10:07:22 +00:00
|
|
|
v8_executable("v8_shell") {
|
2016-05-06 07:30:52 +00:00
|
|
|
sources = [
|
|
|
|
"samples/shell.cc",
|
|
|
|
]
|
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
configs = [
|
2016-05-06 07:30:52 +00:00
|
|
|
# Note: don't use :internal_config here because this target will get
|
|
|
|
# the :external_config applied to it by virtue of depending on :v8, and
|
|
|
|
# you can't have both applied to the same target.
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":v8",
|
2016-10-07 07:56:43 +00:00
|
|
|
":v8_libbase",
|
2016-05-06 07:30:52 +00:00
|
|
|
":v8_libplatform",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-06-03 13:09:52 +00:00
|
|
|
template("v8_fuzzer") {
|
|
|
|
name = target_name
|
|
|
|
forward_variables_from(invoker, "*")
|
2016-06-14 10:07:22 +00:00
|
|
|
v8_executable("v8_simple_" + name) {
|
2016-06-03 13:09:52 +00:00
|
|
|
deps = [
|
|
|
|
":" + name,
|
2016-06-04 06:28:01 +00:00
|
|
|
"//build/win:default_exe_manifest",
|
2016-06-03 13:09:52 +00:00
|
|
|
]
|
|
|
|
|
2017-01-05 09:27:40 +00:00
|
|
|
sources = [
|
|
|
|
"test/fuzzer/fuzzer.cc",
|
|
|
|
]
|
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
configs = [ ":external_config" ]
|
2016-06-03 13:09:52 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("json_fuzzer") {
|
2016-02-02 11:28:47 +00:00
|
|
|
sources = [
|
|
|
|
"test/fuzzer/json.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
]
|
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
2016-02-02 11:28:47 +00:00
|
|
|
}
|
|
|
|
|
2016-06-08 12:09:25 +00:00
|
|
|
v8_fuzzer("json_fuzzer") {
|
|
|
|
}
|
2016-06-03 13:09:52 +00:00
|
|
|
|
2018-01-12 10:57:34 +00:00
|
|
|
v8_source_set("multi_return_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/multi-return.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("multi_return_fuzzer") {
|
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("parser_fuzzer") {
|
2016-01-26 12:19:28 +00:00
|
|
|
sources = [
|
|
|
|
"test/fuzzer/parser.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
2016-10-14 08:35:20 +00:00
|
|
|
":fuzzer_support",
|
2016-01-26 12:19:28 +00:00
|
|
|
]
|
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
2016-01-26 12:19:28 +00:00
|
|
|
}
|
2016-02-01 14:00:12 +00:00
|
|
|
|
2016-06-08 12:09:25 +00:00
|
|
|
v8_fuzzer("parser_fuzzer") {
|
|
|
|
}
|
2016-06-03 13:09:52 +00:00
|
|
|
|
2018-01-18 10:27:08 +00:00
|
|
|
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") {
|
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("regexp_fuzzer") {
|
2016-02-01 14:00:12 +00:00
|
|
|
sources = [
|
|
|
|
"test/fuzzer/regexp.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
]
|
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
2016-02-01 14:00:12 +00:00
|
|
|
}
|
2016-03-02 00:53:19 +00:00
|
|
|
|
2016-06-08 12:09:25 +00:00
|
|
|
v8_fuzzer("regexp_fuzzer") {
|
|
|
|
}
|
2016-06-03 13:09:52 +00:00
|
|
|
|
2016-09-14 10:31:23 +00:00
|
|
|
v8_source_set("wasm_module_runner") {
|
|
|
|
sources = [
|
|
|
|
"test/common/wasm/wasm-module-runner.cc",
|
|
|
|
"test/common/wasm/wasm-module-runner.h",
|
|
|
|
]
|
|
|
|
|
2018-04-16 09:24:22 +00:00
|
|
|
deps = [
|
2018-09-10 12:55:45 +00:00
|
|
|
":generate_bytecode_builtins_list",
|
2018-10-24 08:03:32 +00:00
|
|
|
":run_torque",
|
2018-04-16 09:24:22 +00:00
|
|
|
]
|
|
|
|
|
2019-04-10 09:30:39 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_maybe_icu",
|
|
|
|
]
|
2018-07-09 17:04:28 +00:00
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
2016-09-14 10:31:23 +00:00
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("wasm_fuzzer") {
|
2016-03-02 00:53:19 +00:00
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
2017-05-08 09:22:54 +00:00
|
|
|
":lib_wasm_fuzzer_common",
|
2016-09-14 10:31:23 +00:00
|
|
|
":wasm_module_runner",
|
2016-03-02 00:53:19 +00:00
|
|
|
]
|
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
2016-03-02 00:53:19 +00:00
|
|
|
}
|
|
|
|
|
2016-06-08 12:09:25 +00:00
|
|
|
v8_fuzzer("wasm_fuzzer") {
|
|
|
|
}
|
2016-06-03 13:09:52 +00:00
|
|
|
|
2017-06-13 14:41:54 +00:00
|
|
|
v8_source_set("wasm_async_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-async.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_fuzzer_common",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_async_fuzzer") {
|
|
|
|
}
|
|
|
|
|
2016-08-29 13:55:41 +00:00
|
|
|
v8_source_set("wasm_code_fuzzer") {
|
|
|
|
sources = [
|
2017-03-30 09:18:23 +00:00
|
|
|
"test/common/wasm/test-signatures.h",
|
2016-08-29 13:55:41 +00:00
|
|
|
"test/fuzzer/wasm-code.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
2017-05-08 09:22:54 +00:00
|
|
|
":lib_wasm_fuzzer_common",
|
2016-09-14 10:31:23 +00:00
|
|
|
":wasm_module_runner",
|
2016-08-29 13:55:41 +00:00
|
|
|
]
|
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
2016-08-29 13:55:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_code_fuzzer") {
|
|
|
|
}
|
[wasm] Write fuzzers for single wasm sections.
This CL adds fuzzers for the wasm module sections 'types', 'names',
'globals', 'imports', 'function signatures', 'memory', and 'data', one
fuzzer per section. No fuzzers are added for the other sections because
either there already exists a fuzzer (e.g. wasm-code), or there exist
inter-section dependencies.
To avoid introducing a bunch executables which would make compilation
with make slow, I introduce a single executable
'v8_simple_wasm_section_fuzzer' which calls the fuzzers mentioned above.
This executable is run by the trybots and ensures that the fuzzers
actually compile. For debugging I introduce commandline parameters which
allow to execute the specific fuzzers from 'v8_simple_wasm_section_fuzzer'.
R=titzer@chromium.org, jochen@chromium.org, mstarzinger@chromium.org
Review-Url: https://codereview.chromium.org/2336603002
Cr-Commit-Position: refs/heads/master@{#39413}
2016-09-14 11:17:11 +00:00
|
|
|
|
2017-05-08 09:22:54 +00:00
|
|
|
v8_source_set("lib_wasm_fuzzer_common") {
|
[wasm] Write fuzzers for single wasm sections.
This CL adds fuzzers for the wasm module sections 'types', 'names',
'globals', 'imports', 'function signatures', 'memory', and 'data', one
fuzzer per section. No fuzzers are added for the other sections because
either there already exists a fuzzer (e.g. wasm-code), or there exist
inter-section dependencies.
To avoid introducing a bunch executables which would make compilation
with make slow, I introduce a single executable
'v8_simple_wasm_section_fuzzer' which calls the fuzzers mentioned above.
This executable is run by the trybots and ensures that the fuzzers
actually compile. For debugging I introduce commandline parameters which
allow to execute the specific fuzzers from 'v8_simple_wasm_section_fuzzer'.
R=titzer@chromium.org, jochen@chromium.org, mstarzinger@chromium.org
Review-Url: https://codereview.chromium.org/2336603002
Cr-Commit-Position: refs/heads/master@{#39413}
2016-09-14 11:17:11 +00:00
|
|
|
sources = [
|
2017-05-08 09:22:54 +00:00
|
|
|
"test/fuzzer/wasm-fuzzer-common.cc",
|
|
|
|
"test/fuzzer/wasm-fuzzer-common.h",
|
[wasm] Write fuzzers for single wasm sections.
This CL adds fuzzers for the wasm module sections 'types', 'names',
'globals', 'imports', 'function signatures', 'memory', and 'data', one
fuzzer per section. No fuzzers are added for the other sections because
either there already exists a fuzzer (e.g. wasm-code), or there exist
inter-section dependencies.
To avoid introducing a bunch executables which would make compilation
with make slow, I introduce a single executable
'v8_simple_wasm_section_fuzzer' which calls the fuzzers mentioned above.
This executable is run by the trybots and ensures that the fuzzers
actually compile. For debugging I introduce commandline parameters which
allow to execute the specific fuzzers from 'v8_simple_wasm_section_fuzzer'.
R=titzer@chromium.org, jochen@chromium.org, mstarzinger@chromium.org
Review-Url: https://codereview.chromium.org/2336603002
Cr-Commit-Position: refs/heads/master@{#39413}
2016-09-14 11:17:11 +00:00
|
|
|
]
|
|
|
|
|
2018-04-16 09:24:22 +00:00
|
|
|
deps = [
|
2018-09-10 12:55:45 +00:00
|
|
|
":generate_bytecode_builtins_list",
|
2018-10-24 08:03:32 +00:00
|
|
|
":run_torque",
|
2018-04-16 09:24:22 +00:00
|
|
|
]
|
|
|
|
|
2019-04-10 09:30:39 +00:00
|
|
|
public_deps = [
|
|
|
|
":v8_maybe_icu",
|
|
|
|
]
|
2018-07-09 17:04:28 +00:00
|
|
|
|
2016-09-26 07:40:24 +00:00
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
[wasm] Write fuzzers for single wasm sections.
This CL adds fuzzers for the wasm module sections 'types', 'names',
'globals', 'imports', 'function signatures', 'memory', and 'data', one
fuzzer per section. No fuzzers are added for the other sections because
either there already exists a fuzzer (e.g. wasm-code), or there exist
inter-section dependencies.
To avoid introducing a bunch executables which would make compilation
with make slow, I introduce a single executable
'v8_simple_wasm_section_fuzzer' which calls the fuzzers mentioned above.
This executable is run by the trybots and ensures that the fuzzers
actually compile. For debugging I introduce commandline parameters which
allow to execute the specific fuzzers from 'v8_simple_wasm_section_fuzzer'.
R=titzer@chromium.org, jochen@chromium.org, mstarzinger@chromium.org
Review-Url: https://codereview.chromium.org/2336603002
Cr-Commit-Position: refs/heads/master@{#39413}
2016-09-14 11:17:11 +00:00
|
|
|
}
|
|
|
|
|
[wasm] Syntax- and Type-aware Fuzzer
This is the beginning of a new fuzzer that generates
correct-by-construction Wasm modules. This should allow us to better
exercise the compiler and correctness aspects of fuzzing. It is based off
of ahaas' original Wasm fuzzer.
At the moment, it can generate expressions made up of most binops, and
also nested blocks with unconditional breaks. Future CLs will add
additional constructs, such as br_if, loops, memory access, etc.
The way the fuzzer works is that it starts with an array of arbitrary
data provided by libfuzzer. It uses the data to generate an expression.
Care is taken to make use of the entire string. Basically, the
generator has a bunch of grammar-like rules for how to construct an
expression of a given type. For example, an i32 can be made by adding
two other i32s, or by wrapping an i64. The process then continues
recursively until all the data is consumed.
We generate an expression from a slice of data as follows:
* If the slice is less than or equal to the size of the type (e.g. 4
bytes for i32), then it will emit the entire slice as a constant.
* Otherwise, it will consume the first 4 bytes of the slice and use
this to select which rule to apply. Each rule then consumes the
remainder of the slice in an appropriate way. For example:
* Unary ops use the remainder of the slice to generate the argument.
* Binary ops consume another four bytes and mod this with the length
of the remaining slice to split the slice into two parts. Each of
these subslices are then used to generate one of the arguments to
the binop.
* Blocks are basically like a unary op, but a stack of block types is
maintained to facilitate branches. For blocks that end in a break,
the first four bytes of a slice are used to select the break depth
and the stack determines what type of expression to generate.
The goal is that once this generator is complete, it will provide a one
to one mapping between binary strings and valid Wasm modules.
Review-Url: https://codereview.chromium.org/2658723006
Cr-Commit-Position: refs/heads/master@{#43289}
2017-02-17 17:06:29 +00:00
|
|
|
v8_source_set("wasm_compile_fuzzer") {
|
|
|
|
sources = [
|
2017-03-30 09:18:23 +00:00
|
|
|
"test/common/wasm/test-signatures.h",
|
[wasm] Syntax- and Type-aware Fuzzer
This is the beginning of a new fuzzer that generates
correct-by-construction Wasm modules. This should allow us to better
exercise the compiler and correctness aspects of fuzzing. It is based off
of ahaas' original Wasm fuzzer.
At the moment, it can generate expressions made up of most binops, and
also nested blocks with unconditional breaks. Future CLs will add
additional constructs, such as br_if, loops, memory access, etc.
The way the fuzzer works is that it starts with an array of arbitrary
data provided by libfuzzer. It uses the data to generate an expression.
Care is taken to make use of the entire string. Basically, the
generator has a bunch of grammar-like rules for how to construct an
expression of a given type. For example, an i32 can be made by adding
two other i32s, or by wrapping an i64. The process then continues
recursively until all the data is consumed.
We generate an expression from a slice of data as follows:
* If the slice is less than or equal to the size of the type (e.g. 4
bytes for i32), then it will emit the entire slice as a constant.
* Otherwise, it will consume the first 4 bytes of the slice and use
this to select which rule to apply. Each rule then consumes the
remainder of the slice in an appropriate way. For example:
* Unary ops use the remainder of the slice to generate the argument.
* Binary ops consume another four bytes and mod this with the length
of the remaining slice to split the slice into two parts. Each of
these subslices are then used to generate one of the arguments to
the binop.
* Blocks are basically like a unary op, but a stack of block types is
maintained to facilitate branches. For blocks that end in a break,
the first four bytes of a slice are used to select the break depth
and the stack determines what type of expression to generate.
The goal is that once this generator is complete, it will provide a one
to one mapping between binary strings and valid Wasm modules.
Review-Url: https://codereview.chromium.org/2658723006
Cr-Commit-Position: refs/heads/master@{#43289}
2017-02-17 17:06:29 +00:00
|
|
|
"test/fuzzer/wasm-compile.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
2017-05-08 09:22:54 +00:00
|
|
|
":lib_wasm_fuzzer_common",
|
[wasm] Syntax- and Type-aware Fuzzer
This is the beginning of a new fuzzer that generates
correct-by-construction Wasm modules. This should allow us to better
exercise the compiler and correctness aspects of fuzzing. It is based off
of ahaas' original Wasm fuzzer.
At the moment, it can generate expressions made up of most binops, and
also nested blocks with unconditional breaks. Future CLs will add
additional constructs, such as br_if, loops, memory access, etc.
The way the fuzzer works is that it starts with an array of arbitrary
data provided by libfuzzer. It uses the data to generate an expression.
Care is taken to make use of the entire string. Basically, the
generator has a bunch of grammar-like rules for how to construct an
expression of a given type. For example, an i32 can be made by adding
two other i32s, or by wrapping an i64. The process then continues
recursively until all the data is consumed.
We generate an expression from a slice of data as follows:
* If the slice is less than or equal to the size of the type (e.g. 4
bytes for i32), then it will emit the entire slice as a constant.
* Otherwise, it will consume the first 4 bytes of the slice and use
this to select which rule to apply. Each rule then consumes the
remainder of the slice in an appropriate way. For example:
* Unary ops use the remainder of the slice to generate the argument.
* Binary ops consume another four bytes and mod this with the length
of the remaining slice to split the slice into two parts. Each of
these subslices are then used to generate one of the arguments to
the binop.
* Blocks are basically like a unary op, but a stack of block types is
maintained to facilitate branches. For blocks that end in a break,
the first four bytes of a slice are used to select the break depth
and the stack determines what type of expression to generate.
The goal is that once this generator is complete, it will provide a one
to one mapping between binary strings and valid Wasm modules.
Review-Url: https://codereview.chromium.org/2658723006
Cr-Commit-Position: refs/heads/master@{#43289}
2017-02-17 17:06:29 +00:00
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_compile_fuzzer") {
|
|
|
|
}
|
2018-11-29 10:10:21 +00:00
|
|
|
|
|
|
|
# Target to build all generated .cc files.
|
|
|
|
group("v8_generated_cc_files") {
|
|
|
|
testonly = true
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":generate_bytecode_builtins_list",
|
|
|
|
":js2c_extras",
|
|
|
|
":run_torque",
|
|
|
|
"src/inspector:v8_generated_cc_files",
|
|
|
|
"test/cctest:v8_generated_cc_files",
|
|
|
|
]
|
|
|
|
}
|
2019-03-28 08:52:41 +00:00
|
|
|
|
|
|
|
# Protobuf targets, used only when building outside of chromium.
|
|
|
|
|
|
|
|
if (!build_with_chromium && v8_use_perfetto) {
|
|
|
|
# This config is applied to the autogenerated .pb.{cc,h} files in
|
|
|
|
# proto_library.gni. This config is propagated up to the source sets
|
|
|
|
# that depend on generated proto headers.
|
|
|
|
config("protobuf_gen_config") {
|
|
|
|
defines = [
|
|
|
|
"GOOGLE_PROTOBUF_NO_RTTI",
|
|
|
|
"GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
|
|
|
|
]
|
|
|
|
cflags = [
|
|
|
|
# Using -isystem instead of include_dirs (-I), so we don't need to suppress
|
|
|
|
# warnings coming from libprotobuf headers. Doing so would mask warnings in
|
|
|
|
# our own code.
|
|
|
|
"-isystem",
|
|
|
|
rebase_path("third_party/protobuf/src", root_build_dir),
|
|
|
|
"-Wno-unknown-warning-option",
|
|
|
|
"-Wno-deprecated",
|
|
|
|
"-Wno-undef",
|
|
|
|
"-Wno-zero-as-null-pointer-constant",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
# Configuration used to build libprotobuf_* and the protoc compiler.
|
|
|
|
config("protobuf_config") {
|
|
|
|
# Apply the lighter supressions and macro definitions from above.
|
|
|
|
configs = [ ":protobuf_gen_config" ]
|
|
|
|
|
|
|
|
defines = [ "HAVE_PTHREAD=1" ]
|
|
|
|
if (is_clang) {
|
|
|
|
cflags = [
|
2019-04-16 15:07:29 +00:00
|
|
|
"-Wno-unused-private-field",
|
|
|
|
"-Wno-unused-function",
|
|
|
|
"-Wno-inconsistent-missing-override",
|
2019-03-28 08:52:41 +00:00
|
|
|
"-Wno-unknown-warning-option",
|
|
|
|
"-Wno-enum-compare-switch",
|
|
|
|
"-Wno-user-defined-warnings",
|
|
|
|
"-Wno-tautological-constant-compare",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
source_set("protobuf_lite") {
|
|
|
|
sources = [
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/any_lite.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/arena.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/extension_set.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/generated_message_table_driven_lite.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/generated_message_util.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/io/strtod.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/message_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/repeated_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/common.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/int128.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/io_win32.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/status.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/time.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
|
|
|
|
]
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
2019-04-16 15:07:29 +00:00
|
|
|
configs += [
|
|
|
|
"//build/config/compiler:no_chromium_code",
|
|
|
|
":protobuf_config",
|
|
|
|
]
|
2019-03-28 08:52:41 +00:00
|
|
|
public_configs = [ ":protobuf_gen_config" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
# This target should be used only by the protoc compiler and by test targets.
|
|
|
|
source_set("protobuf_full") {
|
|
|
|
deps = [
|
|
|
|
":protobuf_lite",
|
|
|
|
]
|
|
|
|
sources = [
|
|
|
|
"third_party/protobuf/src/google/protobuf/any.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/any.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/api.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/importer.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/parser.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/descriptor.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/descriptor.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/descriptor_database.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/duration.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/dynamic_message.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/empty.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/extension_set_heavy.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/field_mask.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/generated_message_reflection.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/generated_message_table_driven.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/io/gzip_stream.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/io/printer.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/io/tokenizer.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/map_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/message.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/reflection_ops.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/service.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/source_context.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/struct.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/mathlimits.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/stubs/substitute.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/text_format.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/timestamp.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/type.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/unknown_field_set.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/util/field_comparator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/field_mask_util.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/error_listener.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/json_escaping.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/object_writer.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/proto_writer.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/type_info.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/type_info_test_helper.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/internal/utility.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/json_util.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/message_differencer.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/time_util.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/wire_format.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/wrappers.pb.cc",
|
|
|
|
]
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
2019-04-16 15:07:29 +00:00
|
|
|
configs += [
|
|
|
|
"//build/config/compiler:no_chromium_code",
|
|
|
|
":protobuf_config",
|
|
|
|
]
|
2019-03-28 08:52:41 +00:00
|
|
|
public_configs = [ ":protobuf_gen_config" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
if (current_toolchain == host_toolchain) {
|
|
|
|
source_set("protoc_lib") {
|
|
|
|
deps = [
|
|
|
|
":protobuf_full",
|
|
|
|
]
|
|
|
|
sources = [
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/code_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/command_line_interface.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_context.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_enum.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_enum_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_extension.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_extension_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_message_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_message_field_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_message_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_service.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/java/java_string_field_lite.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/js/well_known_types_embed.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
|
2019-04-02 12:46:55 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/php/php_generator.cc",
|
2019-03-28 08:52:41 +00:00
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/plugin.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/python/python_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/subprocess.cc",
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/zip_writer.cc",
|
|
|
|
]
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
2019-04-16 15:07:29 +00:00
|
|
|
configs += [
|
|
|
|
"//build/config/compiler:no_chromium_code",
|
|
|
|
":protobuf_config",
|
|
|
|
]
|
2019-03-28 08:52:41 +00:00
|
|
|
public_configs = [ ":protobuf_gen_config" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
executable("protoc") {
|
|
|
|
deps = [
|
|
|
|
":protoc_lib",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
sources = [
|
|
|
|
"third_party/protobuf/src/google/protobuf/compiler/main.cc",
|
|
|
|
]
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
2019-04-16 15:07:29 +00:00
|
|
|
configs += [ "//build/config/compiler:no_chromium_code" ]
|
2019-03-28 08:52:41 +00:00
|
|
|
}
|
|
|
|
} # host_toolchain
|
|
|
|
} # if (!build_with_chromium && v8_use_perfetto)
|