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")
|
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")
|
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")
|
2016-06-03 08:16:50 +00:00
|
|
|
import("gni/isolate.gni")
|
2015-09-22 02:28:32 +00:00
|
|
|
import("snapshot_toolchain.gni")
|
|
|
|
|
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
|
|
|
|
|
2017-03-01 12:36:40 +00:00
|
|
|
# Sets -DV8_ENABLE_FUTURE.
|
|
|
|
v8_enable_future = false
|
|
|
|
|
2017-03-07 14:50:16 +00:00
|
|
|
# Sets -DV8_DISABLE_TURBO.
|
|
|
|
v8_disable_turbo = 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.
|
|
|
|
v8_deprecation_warnings = false
|
|
|
|
|
|
|
|
# Enable compiler warnings when using V8_DEPRECATE_SOON apis.
|
2017-01-26 20:18:58 +00:00
|
|
|
v8_imminent_deprecation_warnings = false
|
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 = ""
|
|
|
|
|
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
|
|
|
|
|
|
|
# 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-01-27 11:32:27 +00:00
|
|
|
# Enable code-generation-time checking of types in the CodeStubAssembler.
|
|
|
|
v8_enable_verify_csa = false
|
|
|
|
|
2016-04-08 14:16:47 +00:00
|
|
|
# Interpreted regexp engine exists as platform-independent alternative
|
|
|
|
# based where the regular expression is compiled to a bytecode.
|
|
|
|
v8_interpreted_regexp = false
|
|
|
|
|
|
|
|
# Sets -dOBJECT_PRINT.
|
2017-01-13 17:28:51 +00:00
|
|
|
v8_enable_object_print = ""
|
|
|
|
|
|
|
|
# Sets -dTRACE_MAPS.
|
|
|
|
v8_enable_trace_maps = ""
|
|
|
|
|
|
|
|
# Sets -dV8_ENABLE_CHECKS.
|
|
|
|
v8_enable_v8_checks = ""
|
2016-04-08 14:16:47 +00:00
|
|
|
|
2017-04-11 15:32:32 +00:00
|
|
|
# Builds the snapshot with --trace-ignition
|
|
|
|
v8_trace_ignition = false
|
|
|
|
|
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
|
|
|
|
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-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
|
|
|
|
|
|
|
# Like v8_extra_library_files but for experimental features.
|
|
|
|
#
|
|
|
|
# This default is used by cctests. Projects using V8 will want to override.
|
2017-01-26 20:18:58 +00:00
|
|
|
v8_experimental_extra_library_files =
|
|
|
|
[ "//test/cctest/test-experimental-extra.js" ]
|
|
|
|
|
|
|
|
v8_enable_gdbjit = ((v8_current_cpu == "x86" || v8_current_cpu == "x64" ||
|
|
|
|
v8_current_cpu == "x87") && (is_linux || is_mac)) ||
|
|
|
|
(v8_current_cpu == "ppc64" && is_linux)
|
2017-03-13 15:05:51 +00:00
|
|
|
|
|
|
|
# Set v8_host_byteorder
|
|
|
|
v8_host_byteorder = "little"
|
|
|
|
|
|
|
|
# ppc64 can be either BE or LE
|
|
|
|
if (host_cpu == "ppc64") {
|
|
|
|
v8_host_byteorder =
|
|
|
|
exec_script("//tools/get_byteorder.py", [], "trim string")
|
|
|
|
}
|
|
|
|
if (host_cpu == "ppc" || host_cpu == "s390" || host_cpu == "s390x" ||
|
|
|
|
host_cpu == "mips" || host_cpu == "mips64") {
|
|
|
|
v8_host_byteorder = "big"
|
|
|
|
}
|
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 == "") {
|
|
|
|
v8_enable_verify_heap = is_debug
|
|
|
|
}
|
|
|
|
if (v8_enable_object_print == "") {
|
|
|
|
v8_enable_object_print = is_debug
|
2016-07-26 12:00:17 +00:00
|
|
|
}
|
|
|
|
if (v8_enable_disassembler == "") {
|
2017-01-13 17:28:51 +00:00
|
|
|
v8_enable_disassembler = is_debug
|
|
|
|
}
|
|
|
|
if (v8_enable_trace_maps == "") {
|
|
|
|
v8_enable_trace_maps = is_debug
|
|
|
|
}
|
|
|
|
if (v8_enable_v8_checks == "") {
|
|
|
|
v8_enable_v8_checks = is_debug
|
2016-07-26 12:00:17 +00:00
|
|
|
}
|
|
|
|
|
2016-09-13 07:32:40 +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
|
|
|
|
|
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
|
|
|
|
#
|
|
|
|
config("internal_config") {
|
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
|
|
|
|
2014-06-03 08:12:43 +00:00
|
|
|
include_dirs = [ "." ]
|
2014-05-05 11:06:26 +00:00
|
|
|
|
2015-06-09 08:36:09 +00:00
|
|
|
if (is_component_build) {
|
2016-09-20 12:06:34 +00:00
|
|
|
defines = [ "BUILDING_V8_SHARED" ]
|
2014-06-05 08:45:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-07-03 08:50:52 +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-07-03 08:50:52 +00:00
|
|
|
|
|
|
|
include_dirs = [ "." ]
|
|
|
|
}
|
|
|
|
|
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") {
|
|
|
|
if (is_component_build) {
|
2016-09-20 12:06:34 +00:00
|
|
|
defines = [ "USING_V8_SHARED" ]
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
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" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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 = []
|
|
|
|
|
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-03-01 12:36:40 +00:00
|
|
|
if (v8_enable_future) {
|
|
|
|
defines += [ "V8_ENABLE_FUTURE" ]
|
|
|
|
}
|
2017-03-07 14:50:16 +00:00
|
|
|
if (v8_disable_turbo) {
|
|
|
|
defines += [ "V8_DISABLE_TURBO" ]
|
|
|
|
}
|
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" ]
|
|
|
|
}
|
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) {
|
|
|
|
defines += [ "TRACE_MAPS" ]
|
|
|
|
}
|
|
|
|
if (v8_enable_v8_checks) {
|
|
|
|
defines += [ "V8_ENABLE_CHECKS" ]
|
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_interpreted_regexp) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "V8_INTERPRETED_REGEXP" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_deprecation_warnings) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "V8_DEPRECATION_WARNINGS" ]
|
2014-05-06 15:01:24 +00:00
|
|
|
}
|
2016-04-08 14:16:47 +00:00
|
|
|
if (v8_imminent_deprecation_warnings) {
|
|
|
|
defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ]
|
|
|
|
}
|
|
|
|
if (v8_enable_i18n_support) {
|
2015-01-08 13:21:52 +00:00
|
|
|
defines += [ "V8_I18N_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" ]
|
|
|
|
}
|
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
|
|
|
}
|
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" ]
|
|
|
|
}
|
|
|
|
|
2016-05-02 08:10:32 +00:00
|
|
|
# TODO(jochen): Add support for mips.
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "mipsel") {
|
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",
|
|
|
|
]
|
|
|
|
} 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
|
|
|
|
2016-05-02 08:10:32 +00:00
|
|
|
# TODO(jochen): Add support for mips64.
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "mips64el") {
|
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
|
|
|
|
2016-05-02 08:10:32 +00:00
|
|
|
# TODO(jochen): Add support for big endian host byteorder.
|
|
|
|
defines += [ "V8_TARGET_ARCH_MIPS64_LE" ]
|
|
|
|
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" ]
|
|
|
|
} 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-03-13 15:05:51 +00:00
|
|
|
if (v8_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" ]
|
|
|
|
}
|
|
|
|
if (v8_host_byteorder == "little") {
|
|
|
|
defines += [ "V8_TARGET_ARCH_PPC_LE" ]
|
|
|
|
} else if (v8_host_byteorder == "big") {
|
|
|
|
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
|
|
|
}
|
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.
|
|
|
|
|
|
|
|
if (is_debug) {
|
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" ]
|
|
|
|
}
|
|
|
|
|
2016-09-14 11:18:20 +00:00
|
|
|
if (v8_no_inline) {
|
|
|
|
cflags += [
|
|
|
|
"-fno-inline-functions",
|
|
|
|
"-fno-inline",
|
|
|
|
]
|
|
|
|
}
|
2016-10-12 17:49:44 +00:00
|
|
|
|
|
|
|
if (is_clang) {
|
|
|
|
cflags += [
|
2016-11-14 10:48:26 +00:00
|
|
|
"-Wsign-compare",
|
|
|
|
|
2016-10-12 17:49:44 +00:00
|
|
|
# TODO(hans): Remove once http://crbug.com/428099 is resolved.
|
|
|
|
"-Winconsistent-missing-override",
|
|
|
|
]
|
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.
|
2017-03-17 15:18:18 +00:00
|
|
|
"/wd4718", # Recursive call has no side-effect.
|
|
|
|
"/wd4800", # Forcing value to bool.
|
|
|
|
]
|
|
|
|
}
|
2014-05-26 07:29:39 +00:00
|
|
|
}
|
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
###############################################################################
|
|
|
|
# Actions
|
|
|
|
#
|
|
|
|
|
|
|
|
action("js2c") {
|
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
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
script = "tools/js2c.py"
|
|
|
|
|
|
|
|
# The script depends on this other script, this rule causes a rebuild if it
|
|
|
|
# changes.
|
2016-03-31 07:30:16 +00:00
|
|
|
inputs = [
|
|
|
|
"tools/jsmin.py",
|
|
|
|
]
|
2014-05-05 11:06:26 +00:00
|
|
|
|
2016-03-31 07:30:16 +00:00
|
|
|
# NOSORT
|
2014-05-05 11:06:26 +00:00
|
|
|
sources = [
|
2015-10-13 09:38:08 +00:00
|
|
|
"src/js/macros.py",
|
2015-05-15 15:09:46 +00:00
|
|
|
"src/messages.h",
|
2015-10-13 09:38:08 +00:00
|
|
|
"src/js/prologue.js",
|
|
|
|
"src/js/runtime.js",
|
|
|
|
"src/js/v8natives.js",
|
|
|
|
"src/js/array.js",
|
|
|
|
"src/js/string.js",
|
|
|
|
"src/js/typedarray.js",
|
|
|
|
"src/js/collection.js",
|
|
|
|
"src/js/weak-collection.js",
|
|
|
|
"src/js/collection-iterator.js",
|
|
|
|
"src/js/promise.js",
|
|
|
|
"src/js/messages.js",
|
|
|
|
"src/js/templates.js",
|
2015-10-28 15:57:01 +00:00
|
|
|
"src/js/spread.js",
|
2016-03-21 19:39:16 +00:00
|
|
|
"src/js/proxy.js",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/mirrors.js",
|
2015-08-12 14:22:07 +00:00
|
|
|
"src/debug/debug.js",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/liveedit.js",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
outputs = [
|
2015-01-08 13:21:52 +00:00
|
|
|
"$target_gen_dir/libraries.cc",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_enable_i18n_support) {
|
2015-10-13 09:38:08 +00:00
|
|
|
sources += [ "src/js/i18n.js" ]
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
2014-06-23 13:52:17 +00:00
|
|
|
args = [
|
2015-01-08 13:21:52 +00:00
|
|
|
rebase_path("$target_gen_dir/libraries.cc", root_build_dir),
|
|
|
|
"CORE",
|
|
|
|
] + rebase_path(sources, root_build_dir)
|
2014-06-23 13:52:17 +00:00
|
|
|
|
|
|
|
if (v8_use_external_startup_data) {
|
|
|
|
outputs += [ "$target_gen_dir/libraries.bin" ]
|
|
|
|
args += [
|
|
|
|
"--startup_blob",
|
2015-01-08 13:21:52 +00:00
|
|
|
rebase_path("$target_gen_dir/libraries.bin", root_build_dir),
|
2014-06-23 13:52:17 +00:00
|
|
|
]
|
|
|
|
}
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
# The script depends on this other script, this rule causes a rebuild if it
|
|
|
|
# changes.
|
2016-03-31 07:30:16 +00:00
|
|
|
inputs = [
|
|
|
|
"tools/jsmin.py",
|
|
|
|
]
|
2015-05-08 08:44:47 +00:00
|
|
|
|
|
|
|
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),
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-08-20 00:01:07 +00:00
|
|
|
action("js2c_experimental_extras") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
script = "tools/js2c.py"
|
|
|
|
|
|
|
|
# The script depends on this other script, this rule causes a rebuild if it
|
|
|
|
# changes.
|
2016-03-31 07:30:16 +00:00
|
|
|
inputs = [
|
|
|
|
"tools/jsmin.py",
|
|
|
|
]
|
2015-08-20 00:01:07 +00:00
|
|
|
|
|
|
|
sources = v8_experimental_extra_library_files
|
|
|
|
|
|
|
|
outputs = [
|
|
|
|
"$target_gen_dir/experimental-extras-libraries.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
args = [
|
|
|
|
rebase_path("$target_gen_dir/experimental-extras-libraries.cc",
|
|
|
|
root_build_dir),
|
|
|
|
"EXPERIMENTAL_EXTRAS",
|
|
|
|
] + rebase_path(sources, root_build_dir)
|
|
|
|
|
|
|
|
if (v8_use_external_startup_data) {
|
|
|
|
outputs += [ "$target_gen_dir/libraries_experimental_extras.bin" ]
|
|
|
|
args += [
|
|
|
|
"--startup_blob",
|
2016-03-31 07:30:16 +00:00
|
|
|
rebase_path("$target_gen_dir/libraries_experimental_extras.bin",
|
|
|
|
root_build_dir),
|
2015-08-20 00:01:07 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-01-20 11:31:44 +00:00
|
|
|
action("d8_js2c") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
script = "tools/js2c.py"
|
|
|
|
|
2016-03-31 07:30:16 +00:00
|
|
|
# NOSORT
|
2015-01-20 11:31:44 +00:00
|
|
|
inputs = [
|
|
|
|
"src/d8.js",
|
2015-10-13 09:38:08 +00:00
|
|
|
"src/js/macros.py",
|
2015-01-20 11:31:44 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
outputs = [
|
|
|
|
"$target_gen_dir/d8-js.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
args = rebase_path(outputs, root_build_dir) + [ "D8" ] +
|
|
|
|
rebase_path(inputs, 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) {
|
|
|
|
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 = [
|
|
|
|
":js2c",
|
2015-08-20 00:01:07 +00:00
|
|
|
":js2c_experimental_extras",
|
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 = [
|
|
|
|
"$target_gen_dir/libraries.bin",
|
2016-03-31 07:30:16 +00:00
|
|
|
"$target_gen_dir/libraries_extras.bin",
|
2016-03-31 13:57:24 +00:00
|
|
|
"$target_gen_dir/libraries_experimental_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
|
|
|
]
|
|
|
|
|
|
|
|
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",
|
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
|
|
|
}
|
|
|
|
|
2014-06-03 06:50:46 +00:00
|
|
|
action("run_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
|
|
|
|
2015-01-08 13:21:52 +00:00
|
|
|
deps = [
|
2016-05-20 06:57:45 +00:00
|
|
|
":mksnapshot($v8_snapshot_toolchain)",
|
2015-01-08 13:21:52 +00:00
|
|
|
]
|
2014-06-03 06:50:46 +00:00
|
|
|
|
|
|
|
script = "tools/run.py"
|
|
|
|
|
2016-06-30 11:24:37 +00:00
|
|
|
sources = []
|
|
|
|
|
2014-06-03 06:50:46 +00:00
|
|
|
outputs = [
|
2015-01-08 13:21:52 +00:00
|
|
|
"$target_gen_dir/snapshot.cc",
|
2014-06-03 06:50:46 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
args = [
|
2016-05-20 06:57:45 +00:00
|
|
|
"./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
|
2014-06-03 06:50:46 +00:00
|
|
|
"root_out_dir") + "/mksnapshot",
|
|
|
|
root_build_dir),
|
2015-09-08 15:24:45 +00:00
|
|
|
"--startup_src",
|
2015-01-08 13:21:52 +00:00
|
|
|
rebase_path("$target_gen_dir/snapshot.cc", root_build_dir),
|
2014-06-03 06:50:46 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_random_seed != "0") {
|
2015-01-08 13:21:52 +00:00
|
|
|
args += [
|
|
|
|
"--random-seed",
|
|
|
|
v8_random_seed,
|
|
|
|
]
|
2014-06-03 06:50:46 +00:00
|
|
|
}
|
|
|
|
|
2016-11-15 14:39:59 +00:00
|
|
|
if (v8_os_page_size != "0") {
|
|
|
|
args += [
|
|
|
|
"--v8_os_page_size",
|
|
|
|
v8_os_page_size,
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-04-11 15:32:32 +00:00
|
|
|
if (v8_trace_ignition) {
|
|
|
|
args += [ "--trace-ignition" ]
|
|
|
|
}
|
|
|
|
|
2014-06-23 13:52:17 +00:00
|
|
|
if (v8_use_external_startup_data) {
|
2014-12-15 17:00:58 +00:00
|
|
|
outputs += [ "$root_out_dir/snapshot_blob.bin" ]
|
2014-06-23 13:52:17 +00:00
|
|
|
args += [
|
|
|
|
"--startup_blob",
|
2015-01-08 13:21:52 +00:00
|
|
|
rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir),
|
2014-06-23 13:52:17 +00:00
|
|
|
]
|
|
|
|
}
|
2016-06-30 11:24:37 +00:00
|
|
|
|
|
|
|
if (v8_embed_script != "") {
|
|
|
|
sources += [ v8_embed_script ]
|
|
|
|
args += [ rebase_path(v8_embed_script, root_build_dir) ]
|
|
|
|
}
|
2014-06-03 06:50:46 +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",
|
|
|
|
]
|
2016-06-30 14:22:55 +00:00
|
|
|
args = [
|
|
|
|
rebase_path("$root_out_dir/v8_build_config.json", root_build_dir),
|
2017-02-02 11:32:52 +00:00
|
|
|
"current_cpu=\"$current_cpu\"",
|
2016-06-30 14:22:55 +00:00
|
|
|
"dcheck_always_on=$dcheck_always_on",
|
|
|
|
"is_asan=$is_asan",
|
|
|
|
"is_cfi=$is_cfi",
|
|
|
|
"is_component_build=$is_component_build",
|
|
|
|
"is_debug=$is_debug",
|
|
|
|
"is_msan=$is_msan",
|
|
|
|
"is_tsan=$is_tsan",
|
|
|
|
"target_cpu=\"$target_cpu\"",
|
2017-02-02 11:32:52 +00:00
|
|
|
"v8_current_cpu=\"$v8_current_cpu\"",
|
2016-06-30 14:22:55 +00:00
|
|
|
"v8_enable_i18n_support=$v8_enable_i18n_support",
|
|
|
|
"v8_target_cpu=\"$v8_target_cpu\"",
|
|
|
|
"v8_use_snapshot=$v8_use_snapshot",
|
2016-07-01 05:26:58 +00:00
|
|
|
]
|
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-04-07 13:31:29 +00:00
|
|
|
":v8_builtins_setup",
|
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 = [
|
|
|
|
":js2c",
|
2015-08-20 00:01:07 +00:00
|
|
|
":js2c_experimental_extras",
|
2016-03-31 07:30:16 +00:00
|
|
|
":js2c_extras",
|
2014-05-05 11:06:26 +00:00
|
|
|
":v8_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
sources = [
|
2016-03-31 07:30:16 +00:00
|
|
|
"$target_gen_dir/experimental-extras-libraries.cc",
|
2015-05-08 08:44:47 +00:00
|
|
|
"$target_gen_dir/extras-libraries.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"$target_gen_dir/libraries.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
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("v8_snapshot") {
|
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-06-03 06:50:46 +00:00
|
|
|
|
|
|
|
deps = [
|
|
|
|
":js2c",
|
2015-08-20 00:01:07 +00:00
|
|
|
":js2c_experimental_extras",
|
2016-03-31 07:30:16 +00:00
|
|
|
":js2c_extras",
|
2014-06-03 06:50:46 +00:00
|
|
|
":v8_base",
|
|
|
|
]
|
2015-05-19 11:36:37 +00:00
|
|
|
public_deps = [
|
|
|
|
# This should be public so downstream targets can declare the snapshot
|
|
|
|
# output file as their inputs.
|
|
|
|
":run_mksnapshot",
|
|
|
|
]
|
2014-06-03 06:50:46 +00:00
|
|
|
|
|
|
|
sources = [
|
2016-03-31 07:30:16 +00:00
|
|
|
"$target_gen_dir/experimental-extras-libraries.cc",
|
2015-05-08 08:44:47 +00:00
|
|
|
"$target_gen_dir/extras-libraries.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"$target_gen_dir/libraries.cc",
|
2014-06-03 06:50:46 +00:00
|
|
|
"$target_gen_dir/snapshot.cc",
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/setup-isolate-deserialize.cc",
|
2014-06-03 06:50:46 +00:00
|
|
|
]
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2014-06-03 06:50:46 +00:00
|
|
|
}
|
|
|
|
|
2014-06-23 13:52:17 +00:00
|
|
|
if (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 = [
|
|
|
|
":js2c",
|
2015-08-20 00:01:07 +00:00
|
|
|
":js2c_experimental_extras",
|
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",
|
2015-05-19 11:36:37 +00:00
|
|
|
":run_mksnapshot",
|
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
|
|
|
]
|
|
|
|
|
2016-05-17 10:54:14 +00:00
|
|
|
configs = [ ":internal_config" ]
|
2014-06-23 13:52:17 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-03-16 11:32:01 +00:00
|
|
|
v8_source_set("v8_builtins_generators") {
|
2017-04-07 13:31:29 +00:00
|
|
|
visibility = [
|
|
|
|
":*",
|
|
|
|
"test/cctest:*",
|
|
|
|
"test/unittests:*",
|
|
|
|
]
|
2017-03-16 11:32:01 +00:00
|
|
|
|
|
|
|
deps = [
|
|
|
|
":v8_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
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",
|
|
|
|
"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",
|
|
|
|
"src/builtins/builtins-boolean-gen.cc",
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/builtins/builtins-call-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",
|
|
|
|
"src/builtins/builtins-date-gen.cc",
|
|
|
|
"src/builtins/builtins-forin-gen.cc",
|
2017-03-21 11:17:41 +00:00
|
|
|
"src/builtins/builtins-forin-gen.h",
|
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-03-16 11:32:01 +00:00
|
|
|
"src/builtins/builtins-math-gen.cc",
|
|
|
|
"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-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",
|
|
|
|
"src/builtins/builtins-symbol-gen.cc",
|
|
|
|
"src/builtins/builtins-typedarray-gen.cc",
|
|
|
|
"src/builtins/builtins-utils-gen.h",
|
|
|
|
"src/builtins/builtins-wasm-gen.cc",
|
2017-04-07 13:31:29 +00:00
|
|
|
"src/builtins/setup-builtins-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-04-07 13:31:29 +00:00
|
|
|
"src/interpreter/setup-interpreter-internal.cc",
|
|
|
|
"src/interpreter/setup-interpreter.h",
|
2017-03-16 11:32:01 +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",
|
|
|
|
]
|
|
|
|
} else if (v8_current_cpu == "x87") {
|
|
|
|
sources += [
|
|
|
|
### gcmole(arch:x87) ###
|
|
|
|
"src/builtins/x87/builtins-x87.cc",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-03-16 11:32:01 +00:00
|
|
|
configs = [ ":internal_config" ]
|
|
|
|
}
|
|
|
|
|
2017-04-07 13:31:29 +00:00
|
|
|
v8_source_set("v8_builtins_setup") {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":v8_builtins_generators",
|
|
|
|
]
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
### gcmole(all) ###
|
|
|
|
"src/setup-isolate-full.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
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 = [
|
|
|
|
"include/v8-version-string.h",
|
|
|
|
"include/v8-version.h",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("v8_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
|
|
|
|
|
|
|
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) ###
|
2015-06-27 19:39:42 +00:00
|
|
|
"include/v8-debug.h",
|
2017-03-31 08:24:34 +00:00
|
|
|
"include/v8-inspector-protocol.h",
|
|
|
|
"include/v8-inspector.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",
|
|
|
|
"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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/allocation-site-scopes.cc",
|
|
|
|
"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",
|
2016-03-10 12:14:46 +00:00
|
|
|
"src/api-arguments.cc",
|
|
|
|
"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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arguments.cc",
|
|
|
|
"src/arguments.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-12 23:08:53 +00:00
|
|
|
"src/asmjs/asm-typer.cc",
|
|
|
|
"src/asmjs/asm-typer.h",
|
2016-07-01 05:26:58 +00:00
|
|
|
"src/asmjs/asm-types.cc",
|
|
|
|
"src/asmjs/asm-types.h",
|
|
|
|
"src/asmjs/asm-wasm-builder.cc",
|
|
|
|
"src/asmjs/asm-wasm-builder.h",
|
2016-10-10 17:57:30 +00:00
|
|
|
"src/asmjs/switch-logic.cc",
|
|
|
|
"src/asmjs/switch-logic.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-01-11 12:41:44 +00:00
|
|
|
"src/ast/ast-expression-rewriter.cc",
|
|
|
|
"src/ast/ast-expression-rewriter.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",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/ast/ast-numbering.cc",
|
|
|
|
"src/ast/ast-numbering.h",
|
2016-07-25 08:25:49 +00:00
|
|
|
"src/ast/ast-traversal-visitor.h",
|
Remove Expression::bounds_, in order to conserve memory during parsing.
Expression::bounds_ is used only by a subset of compile passes, but the
data structure occupies space for every Expression node ever parsed. This
unneccessarily increases memory consumption. Particularly, peak memory
consumption during startup, which may cause out-of-memory errors.
This CL
- removes Expression::bounds_;
- introduces an AstTypeBounds container, which mappes Expression* to Bounds;
- modifies the code that actually requires bounds information, namely
Crankshaft compile and AsmWasmBuilder, to instantiate such an AstTypeBounds
container before typing and to pass it to the code that consumes this
information; and
- modifies all accesses to Expression::bounds_ to instead access the bounds
via the container instead.
Additionally, this rewrites test-ast-expression-visitor. The reason is that
this code attempted to test AstExpressionVisitor but did so exclusively
through its subclass ExpressionTypeCollector, meaning that the test dealt
almost exclusively with type bounds despite the class-under-test having
no knowledge or functionality related to it. Worse, the test was written
in a way to assume that type bounds were available outside & after
compilation, which is something this change changes.
BUG=v8:4947
Review-Url: https://codereview.chromium.org/1968383002
Cr-Commit-Position: refs/heads/master@{#36222}
2016-05-12 22:24:03 +00:00
|
|
|
"src/ast/ast-type-bounds.h",
|
2016-09-02 13:03:56 +00:00
|
|
|
"src/ast/ast-types.cc",
|
|
|
|
"src/ast/ast-types.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",
|
2016-09-02 17:48:31 +00:00
|
|
|
"src/ast/compile-time-value.cc",
|
|
|
|
"src/ast/compile-time-value.h",
|
2016-08-27 07:08:25 +00:00
|
|
|
"src/ast/context-slot-cache.cc",
|
|
|
|
"src/ast/context-slot-cache.h",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/ast/modules.cc",
|
|
|
|
"src/ast/modules.h",
|
|
|
|
"src/ast/prettyprinter.cc",
|
|
|
|
"src/ast/prettyprinter.h",
|
|
|
|
"src/ast/scopes.cc",
|
|
|
|
"src/ast/scopes.h",
|
|
|
|
"src/ast/variables.cc",
|
|
|
|
"src/ast/variables.h",
|
2014-09-12 09:12:08 +00:00
|
|
|
"src/background-parsing-task.cc",
|
|
|
|
"src/background-parsing-task.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",
|
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",
|
|
|
|
"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-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",
|
2016-07-25 11:44:33 +00:00
|
|
|
"src/builtins/builtins-debug.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",
|
2016-07-20 07:38:14 +00:00
|
|
|
"src/builtins/builtins-function.cc",
|
|
|
|
"src/builtins/builtins-global.cc",
|
|
|
|
"src/builtins/builtins-internal.cc",
|
2016-07-25 11:44:33 +00:00
|
|
|
"src/builtins/builtins-interpreter.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",
|
|
|
|
"src/builtins/builtins-proxy.cc",
|
|
|
|
"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",
|
|
|
|
"src/builtins/builtins-typedarray.cc",
|
2016-07-18 13:12:05 +00:00
|
|
|
"src/builtins/builtins-utils.h",
|
2016-07-14 06:26:03 +00:00
|
|
|
"src/builtins/builtins.cc",
|
|
|
|
"src/builtins/builtins.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",
|
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",
|
2016-04-18 11:57:06 +00:00
|
|
|
"src/code-stub-assembler.cc",
|
|
|
|
"src/code-stub-assembler.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/code-stubs-hydrogen.cc",
|
2017-03-22 12:00:50 +00:00
|
|
|
"src/code-stubs-utils.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/code-stubs.cc",
|
|
|
|
"src/code-stubs.h",
|
|
|
|
"src/codegen.cc",
|
|
|
|
"src/codegen.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",
|
2015-04-20 15:22:02 +00:00
|
|
|
"src/compilation-dependencies.cc",
|
|
|
|
"src/compilation-dependencies.h",
|
2016-08-31 08:49:14 +00:00
|
|
|
"src/compilation-info.cc",
|
|
|
|
"src/compilation-info.h",
|
2014-10-23 09:14:35 +00:00
|
|
|
"src/compilation-statistics.cc",
|
|
|
|
"src/compilation-statistics.h",
|
2016-07-22 12:19:50 +00:00
|
|
|
"src/compiler-dispatcher/compiler-dispatcher-job.cc",
|
|
|
|
"src/compiler-dispatcher/compiler-dispatcher-job.h",
|
2016-10-14 08:12:16 +00:00
|
|
|
"src/compiler-dispatcher/compiler-dispatcher-tracer.cc",
|
|
|
|
"src/compiler-dispatcher/compiler-dispatcher-tracer.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",
|
2014-09-02 11:36:55 +00:00
|
|
|
"src/compiler/access-builder.cc",
|
2014-08-28 14:35:11 +00:00
|
|
|
"src/compiler/access-builder.h",
|
2015-11-02 18:29:47 +00:00
|
|
|
"src/compiler/access-info.cc",
|
|
|
|
"src/compiler/access-info.h",
|
2015-01-26 18:35:04 +00:00
|
|
|
"src/compiler/all-nodes.cc",
|
|
|
|
"src/compiler/all-nodes.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/ast-graph-builder.cc",
|
|
|
|
"src/compiler/ast-graph-builder.h",
|
2014-10-29 07:34:12 +00:00
|
|
|
"src/compiler/ast-loop-assignment-analyzer.cc",
|
|
|
|
"src/compiler/ast-loop-assignment-analyzer.h",
|
2014-09-29 07:29:14 +00:00
|
|
|
"src/compiler/basic-block-instrumentor.cc",
|
|
|
|
"src/compiler/basic-block-instrumentor.h",
|
2015-10-17 17:50:11 +00:00
|
|
|
"src/compiler/branch-elimination.cc",
|
|
|
|
"src/compiler/branch-elimination.h",
|
2016-11-22 18:05:03 +00:00
|
|
|
"src/compiler/bytecode-analysis.cc",
|
|
|
|
"src/compiler/bytecode-analysis.h",
|
2015-09-10 16:21:34 +00:00
|
|
|
"src/compiler/bytecode-graph-builder.cc",
|
|
|
|
"src/compiler/bytecode-graph-builder.h",
|
2016-11-29 12:26:54 +00:00
|
|
|
"src/compiler/bytecode-liveness-map.cc",
|
|
|
|
"src/compiler/bytecode-liveness-map.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/c-linkage.cc",
|
2016-06-01 08:38:32 +00:00
|
|
|
"src/compiler/checkpoint-elimination.cc",
|
|
|
|
"src/compiler/checkpoint-elimination.h",
|
2016-04-18 11:57:06 +00:00
|
|
|
"src/compiler/code-assembler.cc",
|
|
|
|
"src/compiler/code-assembler.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/code-generator-impl.h",
|
|
|
|
"src/compiler/code-generator.cc",
|
|
|
|
"src/compiler/code-generator.h",
|
2014-12-23 14:12:04 +00:00
|
|
|
"src/compiler/common-node-cache.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/common-node-cache.h",
|
2014-12-22 13:06:34 +00:00
|
|
|
"src/compiler/common-operator-reducer.cc",
|
|
|
|
"src/compiler/common-operator-reducer.h",
|
2014-09-12 11:59:26 +00:00
|
|
|
"src/compiler/common-operator.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/common-operator.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/compiler/compiler-source-position-table.cc",
|
|
|
|
"src/compiler/compiler-source-position-table.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/control-builders.cc",
|
|
|
|
"src/compiler/control-builders.h",
|
2015-04-16 06:04:43 +00:00
|
|
|
"src/compiler/control-equivalence.cc",
|
2014-12-02 15:56:22 +00:00
|
|
|
"src/compiler/control-equivalence.h",
|
2015-02-17 13:29:31 +00:00
|
|
|
"src/compiler/control-flow-optimizer.cc",
|
|
|
|
"src/compiler/control-flow-optimizer.h",
|
[turbofan] Proper dead code elimination as regular reducer.
The three different concerns that the ControlReducer used to deal with
are now properly separated into
a.) DeadCodeElimination, which is a regular AdvancedReducer, that
propagates Dead via control edges,
b.) CommonOperatorReducer, which does strength reduction on common
operators (i.e. Branch, Phi, and friends), and
c.) GraphTrimming, which removes dead->live edges from the graph.
This will make it possible to run the DeadCodeElimination together with
other passes that actually introduce Dead nodes, i.e. typed lowering;
and it opens the door for general inlining without two stage fix point
iteration.
To make the DeadCodeElimination easier and more uniform, we basically
reverted the introduction of DeadValue and DeadEffect, and changed the
Dead operator to produce control, value and effect. Note however that
this is not a requirement, but merely a way to make dead propagation
easier and more uniform. We could always go back and decide to have
different Dead operators if some other change requires that.
Note that there are several additional opportunities for cleanup now,
i.e. OSR deconstruction could be a regular reducer now, and we don't
need to use TheHole as dead value marker in the GraphReducer. And we can
actually run the dead code elimination together with the other passes
instead of using separate passes over the graph. We will do this in
follow up CLs.
R=jarin@chromium.org, mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/1193833002
Cr-Commit-Position: refs/heads/master@{#29146}
2015-06-19 12:07:17 +00:00
|
|
|
"src/compiler/dead-code-elimination.cc",
|
|
|
|
"src/compiler/dead-code-elimination.h",
|
2014-11-04 14:37:22 +00:00
|
|
|
"src/compiler/diamond.h",
|
2016-04-18 08:28:33 +00:00
|
|
|
"src/compiler/effect-control-linearizer.cc",
|
|
|
|
"src/compiler/effect-control-linearizer.h",
|
2015-12-02 10:53:28 +00:00
|
|
|
"src/compiler/escape-analysis-reducer.cc",
|
|
|
|
"src/compiler/escape-analysis-reducer.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/escape-analysis.cc",
|
|
|
|
"src/compiler/escape-analysis.h",
|
2015-04-29 05:54:41 +00:00
|
|
|
"src/compiler/frame-elider.cc",
|
|
|
|
"src/compiler/frame-elider.h",
|
2015-05-11 08:03:03 +00:00
|
|
|
"src/compiler/frame-states.cc",
|
|
|
|
"src/compiler/frame-states.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/frame.cc",
|
|
|
|
"src/compiler/frame.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/gap-resolver.cc",
|
|
|
|
"src/compiler/gap-resolver.h",
|
2017-01-02 15:50:55 +00:00
|
|
|
"src/compiler/graph-assembler.cc",
|
|
|
|
"src/compiler/graph-assembler.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/graph-reducer.cc",
|
|
|
|
"src/compiler/graph-reducer.h",
|
2015-06-17 10:56:27 +00:00
|
|
|
"src/compiler/graph-trimmer.cc",
|
|
|
|
"src/compiler/graph-trimmer.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/graph-visualizer.cc",
|
|
|
|
"src/compiler/graph-visualizer.h",
|
|
|
|
"src/compiler/graph.cc",
|
|
|
|
"src/compiler/graph.h",
|
|
|
|
"src/compiler/instruction-codes.h",
|
2015-12-15 14:51:43 +00:00
|
|
|
"src/compiler/instruction-scheduler.cc",
|
|
|
|
"src/compiler/instruction-scheduler.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/instruction-selector-impl.h",
|
|
|
|
"src/compiler/instruction-selector.cc",
|
|
|
|
"src/compiler/instruction-selector.h",
|
|
|
|
"src/compiler/instruction.cc",
|
|
|
|
"src/compiler/instruction.h",
|
2016-02-04 09:40:55 +00:00
|
|
|
"src/compiler/int64-lowering.cc",
|
|
|
|
"src/compiler/int64-lowering.h",
|
2014-09-19 15:02:58 +00:00
|
|
|
"src/compiler/js-builtin-reducer.cc",
|
|
|
|
"src/compiler/js-builtin-reducer.h",
|
2015-11-13 12:19:37 +00:00
|
|
|
"src/compiler/js-call-reducer.cc",
|
|
|
|
"src/compiler/js-call-reducer.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/js-context-specialization.cc",
|
|
|
|
"src/compiler/js-context-specialization.h",
|
2016-02-08 12:33:44 +00:00
|
|
|
"src/compiler/js-create-lowering.cc",
|
|
|
|
"src/compiler/js-create-lowering.h",
|
2015-07-06 11:11:15 +00:00
|
|
|
"src/compiler/js-frame-specialization.cc",
|
|
|
|
"src/compiler/js-frame-specialization.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/js-generic-lowering.cc",
|
|
|
|
"src/compiler/js-generic-lowering.h",
|
|
|
|
"src/compiler/js-graph.cc",
|
|
|
|
"src/compiler/js-graph.h",
|
2015-10-07 12:18:21 +00:00
|
|
|
"src/compiler/js-inlining-heuristic.cc",
|
|
|
|
"src/compiler/js-inlining-heuristic.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/js-inlining.cc",
|
|
|
|
"src/compiler/js-inlining.h",
|
2015-01-26 09:05:47 +00:00
|
|
|
"src/compiler/js-intrinsic-lowering.cc",
|
|
|
|
"src/compiler/js-intrinsic-lowering.h",
|
2015-10-19 08:20:51 +00:00
|
|
|
"src/compiler/js-native-context-specialization.cc",
|
|
|
|
"src/compiler/js-native-context-specialization.h",
|
2014-09-30 10:42:44 +00:00
|
|
|
"src/compiler/js-operator.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/js-operator.h",
|
2017-02-14 14:05:34 +00:00
|
|
|
"src/compiler/js-type-hint-lowering.cc",
|
|
|
|
"src/compiler/js-type-hint-lowering.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/js-typed-lowering.cc",
|
|
|
|
"src/compiler/js-typed-lowering.h",
|
2014-11-26 12:41:46 +00:00
|
|
|
"src/compiler/jump-threading.cc",
|
|
|
|
"src/compiler/jump-threading.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/linkage.cc",
|
|
|
|
"src/compiler/linkage.h",
|
[turbofan] Deferred blocks splintering.
This change encompasses what is necessary to enable stack checks in loops without suffering large regressions.
Primarily, it consists of a new mechanism for dealing with deferred blocks by "splintering", rather than splitting, inside deferred blocks.
My initial change was splitting along deferred block boundaries, but the regression introduced by stackchecks wasn't resolved conclusively. After investigation, it appears that just splitting ranges along cold block boundaries leads to a greater opportunity for moves on the hot path, hence the suboptimal outcome.
The alternative "splinters" ranges rather than splitting them. While splitting creates 2 ranges and links them (parent-child), in contrast, splintering creates a new independent range with no parent-child relation to the original. The original range appears as if it has a liveness hole in the place of the splintered one. All thus obtained ranges are then register allocated with no change to the register allocator.
The splinters (cold blocks) do not conflict with the hot path ranges, by construction. The hot path ones have less pressure to split, because we remove a source of conflicts. After allocation, we merge the splinters back to their original ranges and continue the pipeline. We leverage the previous changes made for deferred blocks (determining where to spill, for example).
Review URL: https://codereview.chromium.org/1305393003
Cr-Commit-Position: refs/heads/master@{#30357}
2015-08-25 14:47:26 +00:00
|
|
|
"src/compiler/live-range-separator.cc",
|
|
|
|
"src/compiler/live-range-separator.h",
|
2015-03-17 09:38:37 +00:00
|
|
|
"src/compiler/liveness-analyzer.cc",
|
|
|
|
"src/compiler/liveness-analyzer.h",
|
2014-12-05 07:59:04 +00:00
|
|
|
"src/compiler/load-elimination.cc",
|
|
|
|
"src/compiler/load-elimination.h",
|
2014-12-16 09:36:16 +00:00
|
|
|
"src/compiler/loop-analysis.cc",
|
|
|
|
"src/compiler/loop-analysis.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/loop-peeling.cc",
|
2016-07-27 05:50:39 +00:00
|
|
|
"src/compiler/loop-peeling.h",
|
|
|
|
"src/compiler/loop-variable-optimizer.cc",
|
|
|
|
"src/compiler/loop-variable-optimizer.h",
|
2016-10-05 08:27:53 +00:00
|
|
|
"src/compiler/machine-graph-verifier.cc",
|
|
|
|
"src/compiler/machine-graph-verifier.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/machine-operator-reducer.cc",
|
|
|
|
"src/compiler/machine-operator-reducer.h",
|
2014-09-11 10:37:49 +00:00
|
|
|
"src/compiler/machine-operator.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/machine-operator.h",
|
2016-05-10 10:11:06 +00:00
|
|
|
"src/compiler/memory-optimizer.cc",
|
|
|
|
"src/compiler/memory-optimizer.h",
|
2014-11-27 09:19:31 +00:00
|
|
|
"src/compiler/move-optimizer.cc",
|
|
|
|
"src/compiler/move-optimizer.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/node-aux-data.h",
|
|
|
|
"src/compiler/node-cache.cc",
|
|
|
|
"src/compiler/node-cache.h",
|
2015-01-07 14:42:38 +00:00
|
|
|
"src/compiler/node-marker.cc",
|
|
|
|
"src/compiler/node-marker.h",
|
2015-02-24 12:26:16 +00:00
|
|
|
"src/compiler/node-matchers.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/node-matchers.h",
|
2015-01-16 11:04:01 +00:00
|
|
|
"src/compiler/node-properties.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/node-properties.h",
|
|
|
|
"src/compiler/node.cc",
|
|
|
|
"src/compiler/node.h",
|
2014-12-23 19:24:03 +00:00
|
|
|
"src/compiler/opcodes.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/opcodes.h",
|
2016-06-02 09:20:50 +00:00
|
|
|
"src/compiler/operation-typer.cc",
|
|
|
|
"src/compiler/operation-typer.h",
|
2014-12-23 12:50:43 +00:00
|
|
|
"src/compiler/operator-properties.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/operator-properties.h",
|
2014-09-02 11:36:55 +00:00
|
|
|
"src/compiler/operator.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/operator.h",
|
2015-01-12 11:39:48 +00:00
|
|
|
"src/compiler/osr.cc",
|
|
|
|
"src/compiler/osr.h",
|
2014-10-23 09:14:35 +00:00
|
|
|
"src/compiler/pipeline-statistics.cc",
|
|
|
|
"src/compiler/pipeline-statistics.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/pipeline.cc",
|
|
|
|
"src/compiler/pipeline.h",
|
2015-07-07 15:02:39 +00:00
|
|
|
"src/compiler/raw-machine-assembler.cc",
|
|
|
|
"src/compiler/raw-machine-assembler.h",
|
2016-06-23 08:56:42 +00:00
|
|
|
"src/compiler/redundancy-elimination.cc",
|
|
|
|
"src/compiler/redundancy-elimination.h",
|
2014-11-10 11:28:54 +00:00
|
|
|
"src/compiler/register-allocator-verifier.cc",
|
|
|
|
"src/compiler/register-allocator-verifier.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/register-allocator.cc",
|
|
|
|
"src/compiler/register-allocator.h",
|
2015-11-25 09:59:03 +00:00
|
|
|
"src/compiler/representation-change.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/representation-change.h",
|
|
|
|
"src/compiler/schedule.cc",
|
|
|
|
"src/compiler/schedule.h",
|
|
|
|
"src/compiler/scheduler.cc",
|
|
|
|
"src/compiler/scheduler.h",
|
2014-11-03 15:17:08 +00:00
|
|
|
"src/compiler/select-lowering.cc",
|
|
|
|
"src/compiler/select-lowering.h",
|
2016-10-20 00:19:33 +00:00
|
|
|
"src/compiler/simd-scalar-lowering.cc",
|
|
|
|
"src/compiler/simd-scalar-lowering.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/simplified-lowering.cc",
|
|
|
|
"src/compiler/simplified-lowering.h",
|
2015-06-25 04:47:06 +00:00
|
|
|
"src/compiler/simplified-operator-reducer.cc",
|
|
|
|
"src/compiler/simplified-operator-reducer.h",
|
2014-09-02 11:36:55 +00:00
|
|
|
"src/compiler/simplified-operator.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/simplified-operator.h",
|
2015-03-16 13:43:02 +00:00
|
|
|
"src/compiler/state-values-utils.cc",
|
|
|
|
"src/compiler/state-values-utils.h",
|
2016-06-23 15:13:32 +00:00
|
|
|
"src/compiler/store-store-elimination.cc",
|
|
|
|
"src/compiler/store-store-elimination.h",
|
2015-05-05 09:42:59 +00:00
|
|
|
"src/compiler/tail-call-optimization.cc",
|
|
|
|
"src/compiler/tail-call-optimization.h",
|
2016-08-29 06:12:20 +00:00
|
|
|
"src/compiler/type-cache.cc",
|
|
|
|
"src/compiler/type-cache.h",
|
2016-08-26 07:57:57 +00:00
|
|
|
"src/compiler/typed-optimization.cc",
|
|
|
|
"src/compiler/typed-optimization.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/typer.cc",
|
|
|
|
"src/compiler/typer.h",
|
2016-09-05 15:58:05 +00:00
|
|
|
"src/compiler/types.cc",
|
|
|
|
"src/compiler/types.h",
|
2016-07-15 15:04:32 +00:00
|
|
|
"src/compiler/unwinding-info-writer.h",
|
2014-09-04 11:13:35 +00:00
|
|
|
"src/compiler/value-numbering-reducer.cc",
|
|
|
|
"src/compiler/value-numbering-reducer.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/verifier.cc",
|
|
|
|
"src/compiler/verifier.h",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/compiler/wasm-compiler.cc",
|
|
|
|
"src/compiler/wasm-compiler.h",
|
|
|
|
"src/compiler/wasm-linkage.cc",
|
2016-10-10 19:00:31 +00:00
|
|
|
"src/compiler/zone-stats.cc",
|
|
|
|
"src/compiler/zone-stats.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",
|
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",
|
2016-03-02 17:30:34 +00:00
|
|
|
"src/crankshaft/compilation-phase.cc",
|
|
|
|
"src/crankshaft/compilation-phase.h",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/crankshaft/hydrogen-alias-analysis.h",
|
|
|
|
"src/crankshaft/hydrogen-bce.cc",
|
|
|
|
"src/crankshaft/hydrogen-bce.h",
|
|
|
|
"src/crankshaft/hydrogen-canonicalize.cc",
|
|
|
|
"src/crankshaft/hydrogen-canonicalize.h",
|
|
|
|
"src/crankshaft/hydrogen-check-elimination.cc",
|
|
|
|
"src/crankshaft/hydrogen-check-elimination.h",
|
|
|
|
"src/crankshaft/hydrogen-dce.cc",
|
|
|
|
"src/crankshaft/hydrogen-dce.h",
|
|
|
|
"src/crankshaft/hydrogen-dehoist.cc",
|
|
|
|
"src/crankshaft/hydrogen-dehoist.h",
|
|
|
|
"src/crankshaft/hydrogen-environment-liveness.cc",
|
|
|
|
"src/crankshaft/hydrogen-environment-liveness.h",
|
|
|
|
"src/crankshaft/hydrogen-escape-analysis.cc",
|
|
|
|
"src/crankshaft/hydrogen-escape-analysis.h",
|
|
|
|
"src/crankshaft/hydrogen-flow-engine.h",
|
|
|
|
"src/crankshaft/hydrogen-gvn.cc",
|
|
|
|
"src/crankshaft/hydrogen-gvn.h",
|
|
|
|
"src/crankshaft/hydrogen-infer-representation.cc",
|
|
|
|
"src/crankshaft/hydrogen-infer-representation.h",
|
|
|
|
"src/crankshaft/hydrogen-infer-types.cc",
|
|
|
|
"src/crankshaft/hydrogen-infer-types.h",
|
|
|
|
"src/crankshaft/hydrogen-instructions.cc",
|
|
|
|
"src/crankshaft/hydrogen-instructions.h",
|
|
|
|
"src/crankshaft/hydrogen-load-elimination.cc",
|
|
|
|
"src/crankshaft/hydrogen-load-elimination.h",
|
|
|
|
"src/crankshaft/hydrogen-mark-unreachable.cc",
|
|
|
|
"src/crankshaft/hydrogen-mark-unreachable.h",
|
|
|
|
"src/crankshaft/hydrogen-osr.cc",
|
|
|
|
"src/crankshaft/hydrogen-osr.h",
|
|
|
|
"src/crankshaft/hydrogen-range-analysis.cc",
|
|
|
|
"src/crankshaft/hydrogen-range-analysis.h",
|
|
|
|
"src/crankshaft/hydrogen-redundant-phi.cc",
|
|
|
|
"src/crankshaft/hydrogen-redundant-phi.h",
|
|
|
|
"src/crankshaft/hydrogen-removable-simulates.cc",
|
|
|
|
"src/crankshaft/hydrogen-removable-simulates.h",
|
|
|
|
"src/crankshaft/hydrogen-representation-changes.cc",
|
|
|
|
"src/crankshaft/hydrogen-representation-changes.h",
|
|
|
|
"src/crankshaft/hydrogen-sce.cc",
|
|
|
|
"src/crankshaft/hydrogen-sce.h",
|
|
|
|
"src/crankshaft/hydrogen-store-elimination.cc",
|
|
|
|
"src/crankshaft/hydrogen-store-elimination.h",
|
|
|
|
"src/crankshaft/hydrogen-types.cc",
|
|
|
|
"src/crankshaft/hydrogen-types.h",
|
|
|
|
"src/crankshaft/hydrogen-uint32-analysis.cc",
|
|
|
|
"src/crankshaft/hydrogen-uint32-analysis.h",
|
|
|
|
"src/crankshaft/hydrogen.cc",
|
|
|
|
"src/crankshaft/hydrogen.h",
|
|
|
|
"src/crankshaft/lithium-allocator-inl.h",
|
|
|
|
"src/crankshaft/lithium-allocator.cc",
|
|
|
|
"src/crankshaft/lithium-allocator.h",
|
|
|
|
"src/crankshaft/lithium-codegen.cc",
|
|
|
|
"src/crankshaft/lithium-codegen.h",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/crankshaft/lithium-inl.h",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/crankshaft/lithium.cc",
|
|
|
|
"src/crankshaft/lithium.h",
|
|
|
|
"src/crankshaft/typing.cc",
|
|
|
|
"src/crankshaft/typing.h",
|
|
|
|
"src/crankshaft/unique.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",
|
2015-08-04 12:08:56 +00:00
|
|
|
"src/debug/debug-scopes.cc",
|
|
|
|
"src/debug/debug-scopes.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",
|
|
|
|
"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",
|
|
|
|
"src/effects.h",
|
2016-06-27 15:06:32 +00:00
|
|
|
"src/eh-frame.cc",
|
|
|
|
"src/eh-frame.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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/factory.cc",
|
|
|
|
"src/factory.h",
|
|
|
|
"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",
|
2017-01-18 19:13:49 +00:00
|
|
|
"src/ffi/ffi-compiler.cc",
|
|
|
|
"src/ffi/ffi-compiler.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",
|
2017-02-14 15:19:03 +00:00
|
|
|
"src/find-and-replace-pattern.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",
|
|
|
|
"src/frames-inl.h",
|
|
|
|
"src/frames.cc",
|
|
|
|
"src/frames.h",
|
2015-07-24 10:11:46 +00:00
|
|
|
"src/full-codegen/full-codegen.cc",
|
|
|
|
"src/full-codegen/full-codegen.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",
|
|
|
|
"src/globals.h",
|
|
|
|
"src/handles-inl.h",
|
|
|
|
"src/handles.cc",
|
|
|
|
"src/handles.h",
|
2016-01-26 09:23:11 +00:00
|
|
|
"src/heap-symbols.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",
|
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",
|
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",
|
|
|
|
"src/heap/heap-inl.h",
|
|
|
|
"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",
|
|
|
|
"src/heap/mark-compact-inl.h",
|
|
|
|
"src/heap/mark-compact.cc",
|
|
|
|
"src/heap/mark-compact.h",
|
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",
|
2016-03-10 12:18:25 +00:00
|
|
|
"src/heap/page-parallel-job.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",
|
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",
|
2014-08-11 14:22:24 +00:00
|
|
|
"src/heap/store-buffer.cc",
|
|
|
|
"src/heap/store-buffer.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/i18n.cc",
|
|
|
|
"src/i18n.h",
|
2016-10-06 18:19:44 +00:00
|
|
|
"src/ic/access-compiler-data.h",
|
2014-08-22 14:36:54 +00:00
|
|
|
"src/ic/access-compiler.cc",
|
|
|
|
"src/ic/access-compiler.h",
|
|
|
|
"src/ic/call-optimization.cc",
|
|
|
|
"src/ic/call-optimization.h",
|
2014-08-25 11:17:37 +00:00
|
|
|
"src/ic/handler-compiler.cc",
|
|
|
|
"src/ic/handler-compiler.h",
|
2016-10-14 12:37:09 +00:00
|
|
|
"src/ic/handler-configuration-inl.h",
|
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",
|
2014-09-16 12:51:33 +00:00
|
|
|
"src/ic/ic-state.cc",
|
|
|
|
"src/ic/ic-state.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",
|
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",
|
2016-05-12 19:18:07 +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",
|
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-04-11 13:37:25 +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",
|
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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/list-inl.h",
|
|
|
|
"src/list.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",
|
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-02-21 17:23:38 +00:00
|
|
|
"src/managed.h",
|
2017-01-10 12:42:53 +00:00
|
|
|
"src/map-updater.cc",
|
|
|
|
"src/map-updater.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/messages.cc",
|
|
|
|
"src/messages.h",
|
|
|
|
"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",
|
2017-04-06 08:32:57 +00:00
|
|
|
"src/objects/code-cache-inl.h",
|
|
|
|
"src/objects/code-cache.h",
|
|
|
|
"src/objects/compilation-cache-inl.h",
|
|
|
|
"src/objects/compilation-cache.h",
|
2017-03-24 11:38:53 +00:00
|
|
|
"src/objects/descriptor-array.h",
|
2017-04-04 08:14:14 +00:00
|
|
|
"src/objects/dictionary.h",
|
2017-03-24 14:15:36 +00:00
|
|
|
"src/objects/frame-array-inl.h",
|
|
|
|
"src/objects/frame-array.h",
|
2017-04-06 08:32:57 +00:00
|
|
|
"src/objects/hash-table.h",
|
2017-01-27 15:29:47 +00:00
|
|
|
"src/objects/literal-objects.cc",
|
|
|
|
"src/objects/literal-objects.h",
|
2017-01-10 16:05:34 +00:00
|
|
|
"src/objects/module-info.h",
|
2016-12-20 14:08:21 +00:00
|
|
|
"src/objects/object-macros-undef.h",
|
|
|
|
"src/objects/object-macros.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-04-06 08:32:57 +00:00
|
|
|
"src/objects/string-table.h",
|
2014-06-27 08:42:17 +00:00
|
|
|
"src/ostreams.cc",
|
|
|
|
"src/ostreams.h",
|
2016-08-25 11:58:07 +00:00
|
|
|
"src/parsing/duplicate-finder.h",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/parsing/expression-classifier.h",
|
|
|
|
"src/parsing/func-name-inferrer.cc",
|
|
|
|
"src/parsing/func-name-inferrer.h",
|
|
|
|
"src/parsing/parameter-initializer-rewriter.cc",
|
|
|
|
"src/parsing/parameter-initializer-rewriter.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",
|
2015-11-26 16:22:34 +00:00
|
|
|
"src/parsing/pattern-rewriter.cc",
|
|
|
|
"src/parsing/preparse-data-format.h",
|
|
|
|
"src/parsing/preparse-data.cc",
|
|
|
|
"src/parsing/preparse-data.h",
|
2017-01-25 13:03:19 +00:00
|
|
|
"src/parsing/preparsed-scope-data.cc",
|
|
|
|
"src/parsing/preparsed-scope-data.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",
|
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-09-28 19:34:08 +00:00
|
|
|
"src/profiler/unbound-queue-inl.h",
|
|
|
|
"src/profiler/unbound-queue.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",
|
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",
|
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",
|
2015-10-02 16:55:12 +00:00
|
|
|
"src/register-configuration.cc",
|
|
|
|
"src/register-configuration.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",
|
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",
|
2016-08-03 13:53:16 +00:00
|
|
|
"src/runtime/runtime-error.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-i18n.cc",
|
|
|
|
"src/runtime/runtime-internal.cc",
|
2015-09-28 18:05:56 +00:00
|
|
|
"src/runtime/runtime-interpreter.cc",
|
2014-09-30 10:46:04 +00:00
|
|
|
"src/runtime/runtime-literals.cc",
|
2014-09-30 08:23:02 +00:00
|
|
|
"src/runtime/runtime-liveedit.cc",
|
2014-09-29 09:32:38 +00:00
|
|
|
"src/runtime/runtime-maths.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",
|
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",
|
2015-06-26 14:24:42 +00:00
|
|
|
"src/simulator.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/small-pointer-list.h",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/snapshot/code-serializer.cc",
|
|
|
|
"src/snapshot/code-serializer.h",
|
|
|
|
"src/snapshot/deserializer.cc",
|
|
|
|
"src/snapshot/deserializer.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",
|
2016-03-01 14:42:57 +00:00
|
|
|
"src/snapshot/partial-serializer.cc",
|
|
|
|
"src/snapshot/partial-serializer.h",
|
|
|
|
"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",
|
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",
|
2014-11-12 08:11:57 +00:00
|
|
|
"src/string-builder.cc",
|
2014-11-12 08:04:41 +00:00
|
|
|
"src/string-builder.h",
|
2016-12-19 18:43:55 +00:00
|
|
|
"src/string-case.cc",
|
|
|
|
"src/string-case.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",
|
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",
|
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",
|
2016-09-20 13:53:32 +00:00
|
|
|
"src/type-hints.cc",
|
|
|
|
"src/type-hints.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/type-info.cc",
|
|
|
|
"src/type-info.h",
|
2015-08-20 11:46:54 +00:00
|
|
|
"src/unicode-cache-inl.h",
|
|
|
|
"src/unicode-cache.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",
|
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",
|
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",
|
|
|
|
"src/vm-state-inl.h",
|
|
|
|
"src/vm-state.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",
|
2016-04-21 10:14:34 +00:00
|
|
|
"src/wasm/leb-helper.h",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/wasm/module-decoder.cc",
|
|
|
|
"src/wasm/module-decoder.h",
|
2016-10-11 12:40:24 +00:00
|
|
|
"src/wasm/signature-map.cc",
|
|
|
|
"src/wasm/signature-map.h",
|
2017-02-20 15:52:16 +00:00
|
|
|
"src/wasm/wasm-code-specialization.cc",
|
|
|
|
"src/wasm/wasm-code-specialization.h",
|
2016-06-17 08:33:36 +00:00
|
|
|
"src/wasm/wasm-debug.cc",
|
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",
|
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",
|
2016-01-05 18:06:34 +00:00
|
|
|
"src/wasm/wasm-macro-gen.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",
|
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",
|
2016-11-22 11:59:27 +00:00
|
|
|
"src/wasm/wasm-text.cc",
|
|
|
|
"src/wasm/wasm-text.h",
|
2016-09-20 16:07:25 +00:00
|
|
|
"src/zone/accounting-allocator.cc",
|
|
|
|
"src/zone/accounting-allocator.h",
|
|
|
|
"src/zone/zone-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",
|
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",
|
|
|
|
"src/zone/zone.cc",
|
|
|
|
"src/zone/zone.h",
|
2014-05-05 11:06:26 +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) ###
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/compiler/ia32/code-generator-ia32.cc",
|
|
|
|
"src/compiler/ia32/instruction-codes-ia32.h",
|
|
|
|
"src/compiler/ia32/instruction-scheduler-ia32.cc",
|
|
|
|
"src/compiler/ia32/instruction-selector-ia32.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/crankshaft/ia32/lithium-codegen-ia32.cc",
|
|
|
|
"src/crankshaft/ia32/lithium-codegen-ia32.h",
|
|
|
|
"src/crankshaft/ia32/lithium-gap-resolver-ia32.cc",
|
|
|
|
"src/crankshaft/ia32/lithium-gap-resolver-ia32.h",
|
|
|
|
"src/crankshaft/ia32/lithium-ia32.cc",
|
|
|
|
"src/crankshaft/ia32/lithium-ia32.h",
|
|
|
|
"src/debug/ia32/debug-ia32.cc",
|
|
|
|
"src/full-codegen/ia32/full-codegen-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",
|
|
|
|
"src/ia32/code-stubs-ia32.cc",
|
|
|
|
"src/ia32/code-stubs-ia32.h",
|
|
|
|
"src/ia32/codegen-ia32.cc",
|
|
|
|
"src/ia32/codegen-ia32.h",
|
|
|
|
"src/ia32/cpu-ia32.cc",
|
|
|
|
"src/ia32/deoptimizer-ia32.cc",
|
|
|
|
"src/ia32/disasm-ia32.cc",
|
|
|
|
"src/ia32/frames-ia32.cc",
|
|
|
|
"src/ia32/frames-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",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/ia32/simulator-ia32.cc",
|
|
|
|
"src/ia32/simulator-ia32.h",
|
2017-03-10 02:40:06 +00:00
|
|
|
"src/ia32/sse-instr.h",
|
2014-09-30 08:22:16 +00:00
|
|
|
"src/ic/ia32/access-compiler-ia32.cc",
|
|
|
|
"src/ic/ia32/handler-compiler-ia32.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/ic/ia32/ic-ia32.cc",
|
2015-08-13 06:55:21 +00:00
|
|
|
"src/regexp/ia32/regexp-macro-assembler-ia32.cc",
|
|
|
|
"src/regexp/ia32/regexp-macro-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) ###
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/compiler/x64/code-generator-x64.cc",
|
|
|
|
"src/compiler/x64/instruction-codes-x64.h",
|
2015-12-15 14:51:43 +00:00
|
|
|
"src/compiler/x64/instruction-scheduler-x64.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/compiler/x64/instruction-selector-x64.cc",
|
2016-07-15 15:04:32 +00:00
|
|
|
"src/compiler/x64/unwinding-info-writer-x64.cc",
|
|
|
|
"src/compiler/x64/unwinding-info-writer-x64.h",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/crankshaft/x64/lithium-codegen-x64.cc",
|
|
|
|
"src/crankshaft/x64/lithium-codegen-x64.h",
|
|
|
|
"src/crankshaft/x64/lithium-gap-resolver-x64.cc",
|
|
|
|
"src/crankshaft/x64/lithium-gap-resolver-x64.h",
|
|
|
|
"src/crankshaft/x64/lithium-x64.cc",
|
|
|
|
"src/crankshaft/x64/lithium-x64.h",
|
|
|
|
"src/debug/x64/debug-x64.cc",
|
|
|
|
"src/full-codegen/x64/full-codegen-x64.cc",
|
|
|
|
"src/ic/x64/access-compiler-x64.cc",
|
|
|
|
"src/ic/x64/handler-compiler-x64.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/ic/x64/ic-x64.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/x64/assembler-x64-inl.h",
|
|
|
|
"src/x64/assembler-x64.cc",
|
|
|
|
"src/x64/assembler-x64.h",
|
|
|
|
"src/x64/code-stubs-x64.cc",
|
|
|
|
"src/x64/code-stubs-x64.h",
|
|
|
|
"src/x64/codegen-x64.cc",
|
|
|
|
"src/x64/codegen-x64.h",
|
|
|
|
"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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/x64/frames-x64.cc",
|
|
|
|
"src/x64/frames-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",
|
2016-09-15 13:14:33 +00:00
|
|
|
"src/x64/simulator-x64.cc",
|
|
|
|
"src/x64/simulator-x64.h",
|
2016-09-12 06:24:06 +00:00
|
|
|
"src/x64/sse-instr.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
2017-03-13 22:12:23 +00:00
|
|
|
if (is_linux) {
|
|
|
|
sources += [ "src/trap-handler/handler-inside.cc" ]
|
|
|
|
}
|
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/code-stubs-arm.cc",
|
|
|
|
"src/arm/code-stubs-arm.h",
|
|
|
|
"src/arm/codegen-arm.cc",
|
|
|
|
"src/arm/codegen-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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm/frames-arm.cc",
|
|
|
|
"src/arm/frames-arm.h",
|
2014-08-29 10:40:02 +00:00
|
|
|
"src/arm/interface-descriptors-arm.cc",
|
|
|
|
"src/arm/interface-descriptors-arm.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm/macro-assembler-arm.cc",
|
|
|
|
"src/arm/macro-assembler-arm.h",
|
|
|
|
"src/arm/simulator-arm.cc",
|
2015-06-26 14:24:42 +00:00
|
|
|
"src/arm/simulator-arm.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/arm/code-generator-arm.cc",
|
|
|
|
"src/compiler/arm/instruction-codes-arm.h",
|
2015-12-15 14:51:43 +00:00
|
|
|
"src/compiler/arm/instruction-scheduler-arm.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/arm/instruction-selector-arm.cc",
|
2016-07-15 15:04:32 +00:00
|
|
|
"src/compiler/arm/unwinding-info-writer-arm.cc",
|
|
|
|
"src/compiler/arm/unwinding-info-writer-arm.h",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/crankshaft/arm/lithium-arm.cc",
|
|
|
|
"src/crankshaft/arm/lithium-arm.h",
|
|
|
|
"src/crankshaft/arm/lithium-codegen-arm.cc",
|
|
|
|
"src/crankshaft/arm/lithium-codegen-arm.h",
|
|
|
|
"src/crankshaft/arm/lithium-gap-resolver-arm.cc",
|
|
|
|
"src/crankshaft/arm/lithium-gap-resolver-arm.h",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/arm/debug-arm.cc",
|
2015-07-24 10:11:46 +00:00
|
|
|
"src/full-codegen/arm/full-codegen-arm.cc",
|
2014-08-22 14:36:54 +00:00
|
|
|
"src/ic/arm/access-compiler-arm.cc",
|
2014-08-25 11:17:37 +00:00
|
|
|
"src/ic/arm/handler-compiler-arm.cc",
|
2014-08-22 11:43:39 +00:00
|
|
|
"src/ic/arm/ic-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",
|
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/code-stubs-arm64.cc",
|
|
|
|
"src/arm64/code-stubs-arm64.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/arm64/codegen-arm64.cc",
|
|
|
|
"src/arm64/codegen-arm64.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"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",
|
2014-05-05 11:06:26 +00:00
|
|
|
"src/arm64/frames-arm64.cc",
|
|
|
|
"src/arm64/frames-arm64.h",
|
|
|
|
"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",
|
|
|
|
"src/arm64/interface-descriptors-arm64.h",
|
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",
|
|
|
|
"src/arm64/simulator-arm64.cc",
|
|
|
|
"src/arm64/simulator-arm64.h",
|
|
|
|
"src/arm64/utils-arm64.cc",
|
|
|
|
"src/arm64/utils-arm64.h",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/arm64/code-generator-arm64.cc",
|
|
|
|
"src/compiler/arm64/instruction-codes-arm64.h",
|
2015-12-15 14:51:43 +00:00
|
|
|
"src/compiler/arm64/instruction-scheduler-arm64.cc",
|
2014-07-31 15:36:22 +00:00
|
|
|
"src/compiler/arm64/instruction-selector-arm64.cc",
|
2016-07-15 15:04:32 +00:00
|
|
|
"src/compiler/arm64/unwinding-info-writer-arm64.cc",
|
|
|
|
"src/compiler/arm64/unwinding-info-writer-arm64.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/crankshaft/arm64/delayed-masm-arm64-inl.h",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/crankshaft/arm64/delayed-masm-arm64.cc",
|
|
|
|
"src/crankshaft/arm64/delayed-masm-arm64.h",
|
|
|
|
"src/crankshaft/arm64/lithium-arm64.cc",
|
|
|
|
"src/crankshaft/arm64/lithium-arm64.h",
|
|
|
|
"src/crankshaft/arm64/lithium-codegen-arm64.cc",
|
|
|
|
"src/crankshaft/arm64/lithium-codegen-arm64.h",
|
|
|
|
"src/crankshaft/arm64/lithium-gap-resolver-arm64.cc",
|
|
|
|
"src/crankshaft/arm64/lithium-gap-resolver-arm64.h",
|
2015-07-31 11:07:50 +00:00
|
|
|
"src/debug/arm64/debug-arm64.cc",
|
2015-07-24 10:11:46 +00:00
|
|
|
"src/full-codegen/arm64/full-codegen-arm64.cc",
|
2014-08-22 14:36:54 +00:00
|
|
|
"src/ic/arm64/access-compiler-arm64.cc",
|
2014-08-25 11:17:37 +00:00
|
|
|
"src/ic/arm64/handler-compiler-arm64.cc",
|
2014-08-22 11:43:39 +00:00
|
|
|
"src/ic/arm64/ic-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",
|
2014-05-05 11:06:26 +00:00
|
|
|
]
|
2016-09-21 11:44:10 +00:00
|
|
|
} else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
|
|
|
|
sources += [ ### gcmole(arch:mipsel) ###
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/compiler/mips/code-generator-mips.cc",
|
|
|
|
"src/compiler/mips/instruction-codes-mips.h",
|
2015-12-15 14:51:43 +00:00
|
|
|
"src/compiler/mips/instruction-scheduler-mips.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/compiler/mips/instruction-selector-mips.cc",
|
|
|
|
"src/crankshaft/mips/lithium-codegen-mips.cc",
|
|
|
|
"src/crankshaft/mips/lithium-codegen-mips.h",
|
|
|
|
"src/crankshaft/mips/lithium-gap-resolver-mips.cc",
|
|
|
|
"src/crankshaft/mips/lithium-gap-resolver-mips.h",
|
|
|
|
"src/crankshaft/mips/lithium-mips.cc",
|
|
|
|
"src/crankshaft/mips/lithium-mips.h",
|
|
|
|
"src/debug/mips/debug-mips.cc",
|
|
|
|
"src/full-codegen/mips/full-codegen-mips.cc",
|
|
|
|
"src/ic/mips/access-compiler-mips.cc",
|
|
|
|
"src/ic/mips/handler-compiler-mips.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/ic/mips/ic-mips.cc",
|
|
|
|
"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/code-stubs-mips.cc",
|
|
|
|
"src/mips/code-stubs-mips.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/mips/codegen-mips.cc",
|
|
|
|
"src/mips/codegen-mips.h",
|
2014-05-05 11:06:26 +00:00
|
|
|
"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",
|
|
|
|
"src/mips/frames-mips.cc",
|
|
|
|
"src/mips/frames-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",
|
|
|
|
"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",
|
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) ###
|
2016-05-18 14:42:21 +00:00
|
|
|
"src/compiler/mips64/code-generator-mips64.cc",
|
|
|
|
"src/compiler/mips64/instruction-codes-mips64.h",
|
|
|
|
"src/compiler/mips64/instruction-scheduler-mips64.cc",
|
|
|
|
"src/compiler/mips64/instruction-selector-mips64.cc",
|
2015-10-20 13:25:47 +00:00
|
|
|
"src/crankshaft/mips64/lithium-codegen-mips64.cc",
|
|
|
|
"src/crankshaft/mips64/lithium-codegen-mips64.h",
|
|
|
|
"src/crankshaft/mips64/lithium-gap-resolver-mips64.cc",
|
|
|
|
"src/crankshaft/mips64/lithium-gap-resolver-mips64.h",
|
|
|
|
"src/crankshaft/mips64/lithium-mips64.cc",
|
|
|
|
"src/crankshaft/mips64/lithium-mips64.h",
|
|
|
|
"src/debug/mips64/debug-mips64.cc",
|
|
|
|
"src/full-codegen/mips64/full-codegen-mips64.cc",
|
|
|
|
"src/ic/mips64/access-compiler-mips64.cc",
|
|
|
|
"src/ic/mips64/handler-compiler-mips64.cc",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/ic/mips64/ic-mips64.cc",
|
|
|
|
"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/code-stubs-mips64.cc",
|
|
|
|
"src/mips64/code-stubs-mips64.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/mips64/codegen-mips64.cc",
|
|
|
|
"src/mips64/codegen-mips64.h",
|
2014-08-25 15:15:26 +00:00
|
|
|
"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",
|
|
|
|
"src/mips64/frames-mips64.cc",
|
|
|
|
"src/mips64/frames-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",
|
|
|
|
"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",
|
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) ###
|
|
|
|
"src/compiler/ppc/code-generator-ppc.cc",
|
|
|
|
"src/compiler/ppc/instruction-codes-ppc.h",
|
|
|
|
"src/compiler/ppc/instruction-scheduler-ppc.cc",
|
|
|
|
"src/compiler/ppc/instruction-selector-ppc.cc",
|
|
|
|
"src/crankshaft/ppc/lithium-codegen-ppc.cc",
|
|
|
|
"src/crankshaft/ppc/lithium-codegen-ppc.h",
|
|
|
|
"src/crankshaft/ppc/lithium-gap-resolver-ppc.cc",
|
|
|
|
"src/crankshaft/ppc/lithium-gap-resolver-ppc.h",
|
|
|
|
"src/crankshaft/ppc/lithium-ppc.cc",
|
|
|
|
"src/crankshaft/ppc/lithium-ppc.h",
|
|
|
|
"src/debug/ppc/debug-ppc.cc",
|
|
|
|
"src/full-codegen/ppc/full-codegen-ppc.cc",
|
|
|
|
"src/ic/ppc/access-compiler-ppc.cc",
|
|
|
|
"src/ic/ppc/handler-compiler-ppc.cc",
|
|
|
|
"src/ic/ppc/ic-ppc.cc",
|
|
|
|
"src/ppc/assembler-ppc-inl.h",
|
|
|
|
"src/ppc/assembler-ppc.cc",
|
|
|
|
"src/ppc/assembler-ppc.h",
|
|
|
|
"src/ppc/code-stubs-ppc.cc",
|
|
|
|
"src/ppc/code-stubs-ppc.h",
|
|
|
|
"src/ppc/codegen-ppc.cc",
|
|
|
|
"src/ppc/codegen-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",
|
|
|
|
"src/ppc/frames-ppc.cc",
|
|
|
|
"src/ppc/frames-ppc.h",
|
|
|
|
"src/ppc/interface-descriptors-ppc.cc",
|
|
|
|
"src/ppc/macro-assembler-ppc.cc",
|
|
|
|
"src/ppc/macro-assembler-ppc.h",
|
|
|
|
"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",
|
|
|
|
]
|
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) ###
|
2016-03-04 15:38:18 +00:00
|
|
|
"src/compiler/s390/code-generator-s390.cc",
|
|
|
|
"src/compiler/s390/instruction-codes-s390.h",
|
|
|
|
"src/compiler/s390/instruction-scheduler-s390.cc",
|
|
|
|
"src/compiler/s390/instruction-selector-s390.cc",
|
2016-03-07 14:48:47 +00:00
|
|
|
"src/crankshaft/s390/lithium-codegen-s390.cc",
|
|
|
|
"src/crankshaft/s390/lithium-codegen-s390.h",
|
|
|
|
"src/crankshaft/s390/lithium-gap-resolver-s390.cc",
|
|
|
|
"src/crankshaft/s390/lithium-gap-resolver-s390.h",
|
|
|
|
"src/crankshaft/s390/lithium-s390.cc",
|
|
|
|
"src/crankshaft/s390/lithium-s390.h",
|
2016-03-01 17:00:08 +00:00
|
|
|
"src/debug/s390/debug-s390.cc",
|
2016-03-07 14:00:04 +00:00
|
|
|
"src/full-codegen/s390/full-codegen-s390.cc",
|
2016-03-01 17:00:08 +00:00
|
|
|
"src/ic/s390/access-compiler-s390.cc",
|
|
|
|
"src/ic/s390/handler-compiler-s390.cc",
|
|
|
|
"src/ic/s390/ic-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",
|
2016-03-08 15:08:01 +00:00
|
|
|
"src/s390/code-stubs-s390.cc",
|
|
|
|
"src/s390/code-stubs-s390.h",
|
2016-03-31 07:30:16 +00:00
|
|
|
"src/s390/codegen-s390.cc",
|
|
|
|
"src/s390/codegen-s390.h",
|
2016-02-26 16:24:36 +00:00
|
|
|
"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",
|
|
|
|
"src/s390/frames-s390.cc",
|
|
|
|
"src/s390/frames-s390.h",
|
|
|
|
"src/s390/interface-descriptors-s390.cc",
|
|
|
|
"src/s390/macro-assembler-s390.cc",
|
|
|
|
"src/s390/macro-assembler-s390.h",
|
|
|
|
"src/s390/simulator-s390.cc",
|
|
|
|
"src/s390/simulator-s390.h",
|
|
|
|
]
|
2016-09-21 11:44:10 +00:00
|
|
|
} else if (v8_current_cpu == "x87") {
|
|
|
|
sources += [ ### gcmole(arch:x87) ###
|
|
|
|
"src/compiler/x87/code-generator-x87.cc",
|
|
|
|
"src/compiler/x87/instruction-codes-x87.h",
|
|
|
|
"src/compiler/x87/instruction-scheduler-x87.cc",
|
|
|
|
"src/compiler/x87/instruction-selector-x87.cc",
|
|
|
|
"src/crankshaft/x87/lithium-codegen-x87.cc",
|
|
|
|
"src/crankshaft/x87/lithium-codegen-x87.h",
|
|
|
|
"src/crankshaft/x87/lithium-gap-resolver-x87.cc",
|
|
|
|
"src/crankshaft/x87/lithium-gap-resolver-x87.h",
|
|
|
|
"src/crankshaft/x87/lithium-x87.cc",
|
|
|
|
"src/crankshaft/x87/lithium-x87.h",
|
|
|
|
"src/debug/x87/debug-x87.cc",
|
|
|
|
"src/full-codegen/x87/full-codegen-x87.cc",
|
|
|
|
"src/ic/x87/access-compiler-x87.cc",
|
|
|
|
"src/ic/x87/handler-compiler-x87.cc",
|
|
|
|
"src/ic/x87/ic-x87.cc",
|
|
|
|
"src/regexp/x87/regexp-macro-assembler-x87.cc",
|
|
|
|
"src/regexp/x87/regexp-macro-assembler-x87.h",
|
|
|
|
"src/x87/assembler-x87-inl.h",
|
|
|
|
"src/x87/assembler-x87.cc",
|
|
|
|
"src/x87/assembler-x87.h",
|
|
|
|
"src/x87/code-stubs-x87.cc",
|
|
|
|
"src/x87/code-stubs-x87.h",
|
|
|
|
"src/x87/codegen-x87.cc",
|
|
|
|
"src/x87/codegen-x87.h",
|
|
|
|
"src/x87/cpu-x87.cc",
|
|
|
|
"src/x87/deoptimizer-x87.cc",
|
|
|
|
"src/x87/disasm-x87.cc",
|
|
|
|
"src/x87/frames-x87.cc",
|
|
|
|
"src/x87/frames-x87.h",
|
|
|
|
"src/x87/interface-descriptors-x87.cc",
|
|
|
|
"src/x87/macro-assembler-x87.cc",
|
|
|
|
"src/x87/macro-assembler-x87.h",
|
|
|
|
"src/x87/simulator-x87.cc",
|
|
|
|
"src/x87/simulator-x87.h",
|
|
|
|
]
|
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 = [
|
|
|
|
":v8_libbase",
|
2016-05-26 02:13:58 +00:00
|
|
|
":v8_libsampler",
|
2017-01-12 20:51:37 +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
|
|
|
|
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
deps += [ "//third_party/icu" ]
|
|
|
|
if (is_win) {
|
|
|
|
deps += [ "//third_party/icu:icudata" ]
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
sources -= [
|
|
|
|
"src/i18n.cc",
|
|
|
|
"src/i18n.h",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2014-05-26 07:29:39 +00:00
|
|
|
if (v8_postmortem_support) {
|
|
|
|
sources += [ "$target_gen_dir/debug-support.cc" ]
|
|
|
|
deps += [ ":postmortem-metadata" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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",
|
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",
|
2014-06-05 12:14:47 +00:00
|
|
|
"src/base/atomicops_internals_x86_msvc.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",
|
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",
|
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",
|
2014-06-30 13:25:46 +00:00
|
|
|
"src/base/logging.cc",
|
|
|
|
"src/base/logging.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",
|
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",
|
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",
|
|
|
|
"src/base/safe_math.h",
|
|
|
|
"src/base/safe_math_impl.h",
|
2014-08-27 08:29:22 +00:00
|
|
|
"src/base/sys-info.cc",
|
|
|
|
"src/base/sys-info.h",
|
2017-03-03 13:54:57 +00:00
|
|
|
"src/base/timezone-cache.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" ]
|
|
|
|
|
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" ]
|
|
|
|
}
|
|
|
|
|
2014-06-30 13:25:46 +00:00
|
|
|
if (is_posix) {
|
2017-03-03 13:54:57 +00:00
|
|
|
sources += [
|
|
|
|
"src/base/platform/platform-posix.cc",
|
|
|
|
"src/base/platform/platform-posix.h",
|
|
|
|
]
|
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",
|
|
|
|
"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
|
|
|
}
|
|
|
|
} else if (is_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 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",
|
|
|
|
"shlwapi.lib",
|
2015-01-08 13:21:52 +00:00
|
|
|
"winmm.lib",
|
|
|
|
"ws2_32.lib",
|
|
|
|
]
|
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",
|
2014-07-03 07:37:27 +00:00
|
|
|
"src/libplatform/default-platform.cc",
|
|
|
|
"src/libplatform/default-platform.h",
|
|
|
|
"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 = [
|
|
|
|
":v8_libbase",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
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
|
|
|
]
|
|
|
|
|
|
|
|
configs = [ ":internal_config_base" ]
|
|
|
|
|
|
|
|
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",
|
|
|
|
]
|
2016-11-18 11:14:04 +00:00
|
|
|
|
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
deps += [ "//third_party/icu" ]
|
|
|
|
}
|
2016-09-26 07:40:24 +00:00
|
|
|
}
|
|
|
|
|
2014-05-05 11:06:26 +00:00
|
|
|
###############################################################################
|
|
|
|
# Executables
|
|
|
|
#
|
|
|
|
|
2016-05-20 06:57:45 +00:00
|
|
|
if (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 = [
|
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 = [
|
|
|
|
":v8_base",
|
2017-04-07 13:31:29 +00:00
|
|
|
":v8_builtins_setup",
|
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",
|
2014-11-04 08:27:49 +00:00
|
|
|
"//build/config/sanitizers:deps",
|
2016-05-02 16:46:13 +00:00
|
|
|
"//build/win:default_exe_manifest",
|
2014-06-05 08:45:24 +00:00
|
|
|
]
|
2014-05-05 11:06:26 +00:00
|
|
|
}
|
2015-01-08 10:48:04 +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",
|
2016-06-27 11:55:33 +00:00
|
|
|
":v8_parser_shell",
|
2016-06-22 13:36:44 +00:00
|
|
|
":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
|
|
|
]
|
|
|
|
|
|
|
|
if (want_v8_shell) {
|
2016-06-08 12:09:25 +00:00
|
|
|
deps += [ ":v8_shell" ]
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|
|
|
|
|
2016-06-03 13:46:08 +00:00
|
|
|
if (v8_test_isolation_mode != "noop") {
|
2016-06-08 12:09:25 +00:00
|
|
|
deps += [ ":d8_run" ]
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-02-02 11:32:52 +00:00
|
|
|
group("v8_clusterfuzz") {
|
|
|
|
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-01-13 09:09:26 +00:00
|
|
|
group("v8_fuzzers") {
|
|
|
|
testonly = true
|
|
|
|
deps = [
|
|
|
|
":v8_simple_json_fuzzer",
|
|
|
|
":v8_simple_parser_fuzzer",
|
|
|
|
":v8_simple_regexp_fuzzer",
|
|
|
|
":v8_simple_wasm_asmjs_fuzzer",
|
|
|
|
":v8_simple_wasm_call_fuzzer",
|
|
|
|
":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_data_section_fuzzer",
|
|
|
|
":v8_simple_wasm_function_sigs_section_fuzzer",
|
|
|
|
":v8_simple_wasm_fuzzer",
|
|
|
|
":v8_simple_wasm_globals_section_fuzzer",
|
|
|
|
":v8_simple_wasm_imports_section_fuzzer",
|
|
|
|
":v8_simple_wasm_memory_section_fuzzer",
|
|
|
|
":v8_simple_wasm_names_section_fuzzer",
|
|
|
|
":v8_simple_wasm_types_section_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
|
|
|
|
2016-07-01 05:26:58 +00:00
|
|
|
deps = [
|
|
|
|
":v8_dump_build_config",
|
|
|
|
]
|
2016-06-30 14:22:55 +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
|
|
|
}
|
|
|
|
} else {
|
|
|
|
group("v8") {
|
2016-07-01 05:26:58 +00:00
|
|
|
deps = [
|
|
|
|
":v8_dump_build_config",
|
|
|
|
]
|
2016-06-30 14:22:55 +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
|
|
|
]
|
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
|
|
|
}
|
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 = [
|
2016-09-20 12:06:34 +00:00
|
|
|
"$target_gen_dir/d8-js.cc",
|
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 = [
|
|
|
|
":d8_js2c",
|
|
|
|
":v8",
|
2016-10-07 07:56:43 +00:00
|
|
|
":v8_libbase",
|
2016-05-13 16:11:24 +00:00
|
|
|
":v8_libplatform",
|
|
|
|
"//build/config/sanitizers:deps",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
2015-01-20 11:31:44 +00:00
|
|
|
|
2016-05-13 16:11:24 +00:00
|
|
|
if (is_posix) {
|
|
|
|
sources += [ "src/d8-posix.cc" ]
|
|
|
|
} else if (is_win) {
|
|
|
|
sources += [ "src/d8-windows.cc" ]
|
|
|
|
}
|
2015-01-20 11:31:44 +00:00
|
|
|
|
2016-05-13 16:11:24 +00:00
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
deps += [ "//third_party/icu" ]
|
2015-01-20 11:31:44 +00:00
|
|
|
}
|
2016-10-21 06:37:29 +00:00
|
|
|
|
2017-01-10 10:19:21 +00:00
|
|
|
if (v8_correctness_fuzzer) {
|
|
|
|
deps += [ "tools/foozzie:v8_correctness_fuzzer_resources" ]
|
|
|
|
}
|
|
|
|
|
2016-10-21 06:37:29 +00:00
|
|
|
defines = []
|
2017-02-13 02:54:05 +00:00
|
|
|
|
|
|
|
if (v8_enable_vtunejit) {
|
|
|
|
deps += [ "//src/third_party/vtune:v8_vtune" ]
|
|
|
|
}
|
2015-01-20 11:31:44 +00:00
|
|
|
}
|
2016-01-26 12:19:28 +00:00
|
|
|
|
2016-06-03 08:16:50 +00:00
|
|
|
v8_isolate_run("d8") {
|
|
|
|
deps = [
|
|
|
|
":d8",
|
|
|
|
]
|
|
|
|
|
|
|
|
isolate = "//src/d8.isolate"
|
|
|
|
}
|
|
|
|
|
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/config/sanitizers:deps",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
deps += [ "//third_party/icu" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":v8",
|
2016-10-07 07:56:43 +00:00
|
|
|
":v8_libbase",
|
2016-06-22 13:36:44 +00:00
|
|
|
":v8_libplatform",
|
|
|
|
"//build/config/sanitizers:deps",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
deps += [ "//third_party/icu" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-06-27 11:55:33 +00:00
|
|
|
v8_executable("v8_parser_shell") {
|
|
|
|
sources = [
|
|
|
|
"tools/parser-shell.cc",
|
|
|
|
"tools/shell-utils.h",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
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/config/sanitizers:deps",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
deps += [ "//third_party/icu" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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/config/sanitizers:deps",
|
|
|
|
"//build/win:default_exe_manifest",
|
|
|
|
]
|
|
|
|
|
|
|
|
if (v8_enable_i18n_support) {
|
|
|
|
deps += [ "//third_party/icu" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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,
|
2017-01-05 09:27:40 +00:00
|
|
|
"//build/config/sanitizers:deps",
|
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
|
|
|
|
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
|
|
|
|
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",
|
|
|
|
]
|
|
|
|
|
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",
|
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
|
|
|
|
2016-05-11 10:17:37 +00:00
|
|
|
v8_source_set("wasm_asmjs_fuzzer") {
|
2016-03-02 00:53:19 +00:00
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-asmjs.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
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-03 13:09:52 +00:00
|
|
|
|
2016-06-08 12:09:25 +00:00
|
|
|
v8_fuzzer("wasm_asmjs_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",
|
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
|
|
|
|
2016-10-24 11:14:35 +00:00
|
|
|
v8_source_set("wasm_call_fuzzer") {
|
|
|
|
sources = [
|
2017-03-30 09:18:23 +00:00
|
|
|
"test/common/wasm/test-signatures.h",
|
2016-10-24 11:14:35 +00:00
|
|
|
"test/fuzzer/wasm-call.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_call_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
|
|
|
v8_source_set("lib_wasm_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-section-fuzzers.cc",
|
|
|
|
"test/fuzzer/wasm-section-fuzzers.h",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("wasm_types_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-types-section.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_section_fuzzer",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_types_section_fuzzer") {
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("wasm_names_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-names-section.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_section_fuzzer",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_names_section_fuzzer") {
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("wasm_globals_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-globals-section.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_section_fuzzer",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_globals_section_fuzzer") {
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("wasm_imports_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-imports-section.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_section_fuzzer",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_imports_section_fuzzer") {
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("wasm_function_sigs_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-function-sigs-section.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_section_fuzzer",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_function_sigs_section_fuzzer") {
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("wasm_memory_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-memory-section.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_section_fuzzer",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_memory_section_fuzzer") {
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("wasm_data_section_fuzzer") {
|
|
|
|
sources = [
|
|
|
|
"test/fuzzer/wasm-data-section.cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":fuzzer_support",
|
|
|
|
":lib_wasm_section_fuzzer",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_data_section_fuzzer") {
|
|
|
|
}
|
[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",
|
|
|
|
":wasm_module_runner",
|
|
|
|
]
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
":external_config",
|
|
|
|
":internal_config_base",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
v8_fuzzer("wasm_compile_fuzzer") {
|
|
|
|
}
|