2016-06-01 12:28:57 +00:00
|
|
|
# Copyright 2016 The V8 project authors. All rights reserved.
|
|
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
|
|
# found in the LICENSE file.
|
|
|
|
|
|
|
|
import("../../gni/v8.gni")
|
|
|
|
|
2019-12-05 13:30:12 +00:00
|
|
|
if (is_fuchsia) {
|
|
|
|
import("//build/config/fuchsia/rules.gni")
|
|
|
|
|
2022-04-05 16:49:17 +00:00
|
|
|
cr_fuchsia_package("v8_unittests_pkg") {
|
2019-12-05 13:30:12 +00:00
|
|
|
testonly = true
|
2022-04-05 16:49:17 +00:00
|
|
|
binary = ":unittests"
|
|
|
|
manifest = "../../gni/v8.cmx"
|
|
|
|
package_name_override = "v8_unittests"
|
2019-12-05 13:30:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fuchsia_package_runner("v8_unittests_fuchsia") {
|
|
|
|
testonly = true
|
2022-02-11 09:39:41 +00:00
|
|
|
use_cfv2 = false
|
2019-12-05 13:30:12 +00:00
|
|
|
package = ":v8_unittests_pkg"
|
2022-04-05 16:49:17 +00:00
|
|
|
package_name_override = "v8_unittests"
|
2019-12-05 13:30:12 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-03-08 08:50:47 +00:00
|
|
|
v8_executable("v8_heap_base_unittests") {
|
2020-09-09 12:17:35 +00:00
|
|
|
testonly = true
|
|
|
|
|
|
|
|
configs = [
|
|
|
|
"../..:external_config",
|
|
|
|
"../..:internal_config_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
sources = [ "heap/base/run-all-unittests.cc" ]
|
|
|
|
|
|
|
|
deps = [
|
2022-03-08 08:50:47 +00:00
|
|
|
":v8_heap_base_unittests_sources",
|
2020-09-09 12:17:35 +00:00
|
|
|
"//testing/gmock",
|
|
|
|
"//testing/gtest",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2022-03-08 08:50:47 +00:00
|
|
|
v8_source_set("v8_heap_base_unittests_sources") {
|
2020-09-09 12:17:35 +00:00
|
|
|
testonly = true
|
|
|
|
|
2022-03-09 16:49:56 +00:00
|
|
|
sources = [
|
|
|
|
"heap/base/active-system-pages-unittest.cc",
|
|
|
|
"heap/base/worklist-unittest.cc",
|
|
|
|
]
|
2020-09-09 12:17:35 +00:00
|
|
|
|
|
|
|
configs = [
|
|
|
|
"../..:external_config",
|
|
|
|
"../..:internal_config_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
2022-03-08 08:50:47 +00:00
|
|
|
"../..:v8_heap_base_for_testing",
|
2020-09-09 12:17:35 +00:00
|
|
|
"//testing/gmock",
|
|
|
|
"//testing/gtest",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2020-03-20 14:44:46 +00:00
|
|
|
# Stand-alone target for C++ GC unittests. This is used to ensure that it
|
|
|
|
# builds without V8 as well. They are also included in the regular unittests
|
|
|
|
# target for simplicity.
|
2020-11-24 02:11:37 +00:00
|
|
|
if (cppgc_is_standalone) {
|
|
|
|
v8_executable("cppgc_unittests") {
|
|
|
|
testonly = true
|
2021-02-09 16:11:55 +00:00
|
|
|
if (v8_current_cpu == "riscv64") {
|
|
|
|
libs = [ "atomic" ]
|
|
|
|
}
|
2020-03-20 14:44:46 +00:00
|
|
|
|
2020-11-24 02:11:37 +00:00
|
|
|
configs = [
|
|
|
|
"../..:external_config",
|
|
|
|
"../..:internal_config_base",
|
|
|
|
]
|
2020-03-20 14:44:46 +00:00
|
|
|
|
2020-11-24 02:11:37 +00:00
|
|
|
sources = [ "heap/cppgc/run-all-unittests.cc" ]
|
2020-03-20 14:44:46 +00:00
|
|
|
|
2020-11-24 02:11:37 +00:00
|
|
|
deps = [
|
|
|
|
":cppgc_unittests_sources",
|
2022-03-08 08:50:47 +00:00
|
|
|
":v8_heap_base_unittests_sources",
|
2020-11-24 02:11:37 +00:00
|
|
|
"../..:cppgc_for_testing",
|
|
|
|
"//testing/gmock",
|
|
|
|
"//testing/gtest",
|
|
|
|
]
|
|
|
|
}
|
2020-03-20 14:44:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
v8_source_set("cppgc_unittests_sources") {
|
|
|
|
testonly = true
|
|
|
|
|
2020-03-24 13:35:51 +00:00
|
|
|
sources = [
|
2021-04-14 15:46:16 +00:00
|
|
|
"heap/cppgc/allocation-unittest.cc",
|
2020-10-23 12:55:45 +00:00
|
|
|
"heap/cppgc/compactor-unittest.cc",
|
2020-09-25 14:46:17 +00:00
|
|
|
"heap/cppgc/concurrent-marking-unittest.cc",
|
2020-05-26 14:40:57 +00:00
|
|
|
"heap/cppgc/concurrent-sweeper-unittest.cc",
|
2020-10-09 12:06:43 +00:00
|
|
|
"heap/cppgc/cross-thread-persistent-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/custom-spaces-unittest.cc",
|
2020-10-15 09:03:15 +00:00
|
|
|
"heap/cppgc/ephemeron-pair-unittest.cc",
|
2021-03-08 11:48:00 +00:00
|
|
|
"heap/cppgc/explicit-management-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/finalizer-trait-unittest.cc",
|
|
|
|
"heap/cppgc/free-list-unittest.cc",
|
|
|
|
"heap/cppgc/garbage-collected-unittest.cc",
|
|
|
|
"heap/cppgc/gc-info-unittest.cc",
|
2020-06-08 09:53:26 +00:00
|
|
|
"heap/cppgc/gc-invoker-unittest.cc",
|
|
|
|
"heap/cppgc/heap-growing-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/heap-object-header-unittest.cc",
|
|
|
|
"heap/cppgc/heap-page-unittest.cc",
|
2021-05-17 12:48:52 +00:00
|
|
|
"heap/cppgc/heap-registry-unittest.cc",
|
2021-02-11 13:57:15 +00:00
|
|
|
"heap/cppgc/heap-statistics-collector-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/heap-unittest.cc",
|
2020-08-25 23:17:11 +00:00
|
|
|
"heap/cppgc/incremental-marking-schedule-unittest.cc",
|
2021-08-11 10:06:09 +00:00
|
|
|
"heap/cppgc/liveness-broker-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/logging-unittest.cc",
|
|
|
|
"heap/cppgc/marker-unittest.cc",
|
2020-07-16 12:02:12 +00:00
|
|
|
"heap/cppgc/marking-verifier-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/marking-visitor-unittest.cc",
|
|
|
|
"heap/cppgc/member-unittest.cc",
|
2021-01-22 14:16:15 +00:00
|
|
|
"heap/cppgc/metric-recorder-unittest.cc",
|
2020-06-16 22:41:00 +00:00
|
|
|
"heap/cppgc/minor-gc-unittest.cc",
|
2020-10-08 11:20:09 +00:00
|
|
|
"heap/cppgc/name-trait-unittest.cc",
|
2021-01-22 19:59:37 +00:00
|
|
|
"heap/cppgc/object-size-trait-unittest.cc",
|
2020-05-13 10:35:58 +00:00
|
|
|
"heap/cppgc/object-start-bitmap-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/page-memory-unittest.cc",
|
2020-10-09 12:06:43 +00:00
|
|
|
"heap/cppgc/persistent-family-unittest.cc",
|
2021-08-24 19:18:08 +00:00
|
|
|
"heap/cppgc/platform-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/prefinalizer-unittest.cc",
|
2021-04-26 19:07:32 +00:00
|
|
|
"heap/cppgc/sanitizer-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/source-location-unittest.cc",
|
|
|
|
"heap/cppgc/stack-unittest.cc",
|
2020-11-19 12:27:35 +00:00
|
|
|
"heap/cppgc/stats-collector-scopes-unittest.cc",
|
2020-06-03 15:33:09 +00:00
|
|
|
"heap/cppgc/stats-collector-unittest.cc",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/sweeper-unittest.cc",
|
2020-05-26 14:40:57 +00:00
|
|
|
"heap/cppgc/test-platform.cc",
|
|
|
|
"heap/cppgc/test-platform.h",
|
2021-02-03 14:11:03 +00:00
|
|
|
"heap/cppgc/testing-unittest.cc",
|
2020-03-27 10:02:58 +00:00
|
|
|
"heap/cppgc/tests.cc",
|
|
|
|
"heap/cppgc/tests.h",
|
2020-05-08 08:11:50 +00:00
|
|
|
"heap/cppgc/visitor-unittest.cc",
|
2020-10-22 12:17:57 +00:00
|
|
|
"heap/cppgc/weak-container-unittest.cc",
|
2021-04-14 15:49:54 +00:00
|
|
|
"heap/cppgc/workloads-unittest.cc",
|
2020-06-02 16:20:04 +00:00
|
|
|
"heap/cppgc/write-barrier-unittest.cc",
|
2020-03-24 13:35:51 +00:00
|
|
|
]
|
2020-03-20 14:44:46 +00:00
|
|
|
|
|
|
|
configs = [
|
|
|
|
"../..:external_config",
|
|
|
|
"../..:internal_config_base",
|
2020-04-01 22:11:38 +00:00
|
|
|
"../..:cppgc_base_config",
|
2020-03-20 14:44:46 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
"//testing/gmock",
|
|
|
|
"//testing/gtest",
|
|
|
|
]
|
2020-11-27 14:10:47 +00:00
|
|
|
|
2021-01-21 11:40:25 +00:00
|
|
|
if (cppgc_is_standalone) {
|
|
|
|
deps += [ "../..:cppgc_for_testing" ]
|
|
|
|
} else {
|
|
|
|
deps += [
|
|
|
|
"../..:v8_for_testing",
|
|
|
|
"../..:v8_tracing",
|
|
|
|
]
|
2020-11-27 14:10:47 +00:00
|
|
|
}
|
2020-03-20 14:44:46 +00:00
|
|
|
}
|
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
v8_executable("unittests") {
|
2016-06-01 12:28:57 +00:00
|
|
|
testonly = true
|
|
|
|
|
2022-02-04 10:08:49 +00:00
|
|
|
if (current_os == "aix") {
|
|
|
|
ldflags = [ "-Wl,-bbigtoc" ]
|
|
|
|
}
|
2017-09-28 17:55:52 +00:00
|
|
|
|
|
|
|
deps = [
|
|
|
|
":unittests_sources",
|
2022-03-08 08:50:47 +00:00
|
|
|
":v8_heap_base_unittests_sources",
|
2017-09-28 17:55:52 +00:00
|
|
|
"../..:v8_for_testing",
|
|
|
|
"../..:v8_libbase",
|
|
|
|
"../..:v8_libplatform",
|
|
|
|
"//build/win:default_exe_manifest",
|
2019-03-04 11:47:44 +00:00
|
|
|
"//testing/gmock",
|
|
|
|
"//testing/gtest",
|
2017-09-28 17:55:52 +00:00
|
|
|
]
|
|
|
|
|
2020-11-24 02:11:37 +00:00
|
|
|
if (!cppgc_is_standalone) {
|
|
|
|
deps += [ ":cppgc_unittests_sources" ]
|
|
|
|
}
|
|
|
|
|
2020-02-28 23:41:01 +00:00
|
|
|
data_deps = [ "../../tools:v8_testrunner" ]
|
2018-03-26 13:12:27 +00:00
|
|
|
|
|
|
|
data = [
|
|
|
|
"testcfg.py",
|
|
|
|
"unittests.status",
|
|
|
|
]
|
|
|
|
|
2017-09-28 17:55:52 +00:00
|
|
|
configs = [
|
|
|
|
"../..:external_config",
|
|
|
|
"../..:internal_config_base",
|
|
|
|
]
|
|
|
|
}
|
2018-03-26 13:12:27 +00:00
|
|
|
|
2017-09-28 17:55:52 +00:00
|
|
|
v8_source_set("unittests_sources") {
|
|
|
|
testonly = true
|
|
|
|
|
2016-09-14 19:02:12 +00:00
|
|
|
sources = [
|
Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 14:12:47 +00:00
|
|
|
"../../test/common/assembler-tester.h",
|
2016-09-20 07:27:52 +00:00
|
|
|
"../../testing/gmock-support.h",
|
|
|
|
"../../testing/gtest-support.h",
|
2017-02-20 10:07:05 +00:00
|
|
|
"api/access-check-unittest.cc",
|
[api] Add API for off-thread code cache deserialization
To consume a code cache off-thread
1. The embedder creates a CachedData object wrapping the data blob.
2. The embedder calls ScriptCompiler::StartConsumingCodeCache with the
CachedData, and receives a ScriptCompiler::CodeCacheConsumeTask
which takes ownership of the CachedData.
3. The embedder calls ScriptCompiler::CodeCacheConsumeTask::Run
on a different thread.
4. Once this completes, the embedded passes the completed task as an
optional argument into Source constructor, and calls Compile as
before.
This is roughly similar to how streaming compilation works, with the
QoL improvement that Source owns the CodeCacheConsumeTask and therefore
we can reuse the same Compile method and do the off-thread finalization
behind the scenes inside Compile.
On the v8::internal side, ScriptCompiler::CodeCacheConsumeTask wraps a
v8::internal::BackgroundDeserializeTask, which has a Run and a Finish
method. The Run creates a LocalIsolate (again, similar to
BackgroundCompileTask), calls some helpers on CodeSerializer, and stores
the pre-finalization result in a OffThreadDeserializeData structure.
This stores Persistent Handles to the off-thread initialized SFI and
a vector of Scripts needing fixing up, and it owns the PersistentHandles
object which owns those Handles. Finally, the Finish method consumes
this OffThreadDeserializeData structure, fixes up Scripts, moves the
SFI Handle into the caller HandleScope, and that's it.
Since we don't yet have the source at off-thread deserialization time,
the various code cache sanity checks are done without the source hash
when deserializing, and the Finish method re-does them now that the
source is available.
Bug: chromium:1075999
Change-Id: If1faf35ba3ef840fa4e735581d0b29c96c1d5fc8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067322
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76155}
2021-08-06 13:53:48 +00:00
|
|
|
"api/deserialize-unittest.cc",
|
2017-02-08 16:12:59 +00:00
|
|
|
"api/exception-unittest.cc",
|
2017-03-29 11:03:38 +00:00
|
|
|
"api/interceptor-unittest.cc",
|
2017-02-08 09:38:50 +00:00
|
|
|
"api/isolate-unittest.cc",
|
2017-02-16 21:46:15 +00:00
|
|
|
"api/remote-object-unittest.cc",
|
2019-06-05 21:08:15 +00:00
|
|
|
"api/resource-constraints-unittest.cc",
|
2017-02-10 05:56:00 +00:00
|
|
|
"api/v8-object-unittest.cc",
|
2018-09-17 11:32:01 +00:00
|
|
|
"base/address-region-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"base/atomic-utils-unittest.cc",
|
|
|
|
"base/bits-unittest.cc",
|
|
|
|
"base/cpu-unittest.cc",
|
|
|
|
"base/division-by-constant-unittest.cc",
|
|
|
|
"base/flags-unittest.cc",
|
|
|
|
"base/functional-unittest.cc",
|
|
|
|
"base/ieee754-unittest.cc",
|
|
|
|
"base/iterator-unittest.cc",
|
|
|
|
"base/logging-unittest.cc",
|
2017-07-26 13:32:14 +00:00
|
|
|
"base/macros-unittest.cc",
|
2017-07-24 18:03:03 +00:00
|
|
|
"base/ostreams-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"base/platform/condition-variable-unittest.cc",
|
|
|
|
"base/platform/mutex-unittest.cc",
|
|
|
|
"base/platform/platform-unittest.cc",
|
|
|
|
"base/platform/semaphore-unittest.cc",
|
|
|
|
"base/platform/time-unittest.cc",
|
2018-08-30 13:38:28 +00:00
|
|
|
"base/region-allocator-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"base/sys-info-unittest.cc",
|
2017-08-07 10:34:47 +00:00
|
|
|
"base/template-utils-unittest.cc",
|
2018-09-26 12:39:46 +00:00
|
|
|
"base/threaded-list-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"base/utils/random-number-generator-unittest.cc",
|
2021-06-17 15:43:55 +00:00
|
|
|
"base/vector-unittest.cc",
|
2022-01-17 10:08:04 +00:00
|
|
|
"base/virtual-address-space-unittest.cc",
|
2019-07-16 14:22:44 +00:00
|
|
|
"base/vlq-base64-unittest.cc",
|
2021-02-25 13:52:38 +00:00
|
|
|
"base/vlq-unittest.cc",
|
2021-03-03 23:20:31 +00:00
|
|
|
"codegen/aligned-slot-allocator-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"codegen/code-stub-assembler-unittest.cc",
|
|
|
|
"codegen/code-stub-assembler-unittest.h",
|
|
|
|
"codegen/register-configuration-unittest.cc",
|
|
|
|
"codegen/source-position-table-unittest.cc",
|
2016-12-12 15:35:41 +00:00
|
|
|
"compiler-dispatcher/compiler-dispatcher-unittest.cc",
|
2017-01-30 19:27:00 +00:00
|
|
|
"compiler-dispatcher/optimizing-compile-dispatcher-unittest.cc",
|
2018-11-12 14:12:52 +00:00
|
|
|
"compiler/backend/instruction-selector-unittest.cc",
|
|
|
|
"compiler/backend/instruction-selector-unittest.h",
|
|
|
|
"compiler/backend/instruction-sequence-unittest.cc",
|
|
|
|
"compiler/backend/instruction-sequence-unittest.h",
|
|
|
|
"compiler/backend/instruction-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/branch-elimination-unittest.cc",
|
2016-12-05 10:47:38 +00:00
|
|
|
"compiler/bytecode-analysis-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/checkpoint-elimination-unittest.cc",
|
|
|
|
"compiler/common-operator-reducer-unittest.cc",
|
|
|
|
"compiler/common-operator-unittest.cc",
|
|
|
|
"compiler/compiler-test-utils.h",
|
[turbofan] Optimize array destructuring
This CL introduces type narrowing and constant folding reducers
to constant fold code that comes out of inlined destructuring
of arrays. In particular, array iterator introduces code that
contains a phi of a temporary array that blocks escape analysis.
The phi comes from conditional that can be evaluated statically
(i.e., constant folded), so with better constant folding we
allow escape analysis to get rid of the temporary array.
On a quick micro-benchmark below, we see more than 6x improvement.
This is close to the hand-optimized version - if we replace
body of f with 'return b + a', we get 220ms (versus 218ms with
destructuring).
function f(a, b) {
[b, a] = [a, b];
return a + b;
}
function sum(count) {
let s = 0;
for (let i = 0; i < count; i++) {
s += f(1, 2);
}
return s;
}
// Warm up
sum(1e5); sum(1e5);
console.time("destructure array");
sum(1e8);
console.timeEnd("destructure array");
console.timeEnd: destructure array, 213.526000
console.timeEnd: destructure array, 1503.537000
Bug: v8:7728
Change-Id: Ib7aec1d5897989e6adb1af1eddd516d8b3866db5
Reviewed-on: https://chromium-review.googlesource.com/1047672
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53048}
2018-05-07 20:45:11 +00:00
|
|
|
"compiler/constant-folding-reducer-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/control-equivalence-unittest.cc",
|
|
|
|
"compiler/control-flow-optimizer-unittest.cc",
|
2021-03-10 18:56:53 +00:00
|
|
|
"compiler/csa-load-elimination-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/dead-code-elimination-unittest.cc",
|
2019-10-17 15:19:58 +00:00
|
|
|
"compiler/decompression-optimizer-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/diamond-unittest.cc",
|
|
|
|
"compiler/effect-control-linearizer-unittest.cc",
|
2021-03-03 23:20:31 +00:00
|
|
|
"compiler/frame-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/graph-reducer-unittest.cc",
|
|
|
|
"compiler/graph-reducer-unittest.h",
|
|
|
|
"compiler/graph-trimmer-unittest.cc",
|
|
|
|
"compiler/graph-unittest.cc",
|
|
|
|
"compiler/graph-unittest.h",
|
2018-02-19 13:31:18 +00:00
|
|
|
"compiler/js-call-reducer-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/js-create-lowering-unittest.cc",
|
|
|
|
"compiler/js-intrinsic-lowering-unittest.cc",
|
2018-09-19 07:51:17 +00:00
|
|
|
"compiler/js-native-context-specialization-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/js-operator-unittest.cc",
|
|
|
|
"compiler/js-typed-lowering-unittest.cc",
|
|
|
|
"compiler/linkage-tail-call-unittest.cc",
|
|
|
|
"compiler/load-elimination-unittest.cc",
|
|
|
|
"compiler/loop-peeling-unittest.cc",
|
|
|
|
"compiler/machine-operator-reducer-unittest.cc",
|
|
|
|
"compiler/machine-operator-unittest.cc",
|
|
|
|
"compiler/node-cache-unittest.cc",
|
|
|
|
"compiler/node-matchers-unittest.cc",
|
|
|
|
"compiler/node-properties-unittest.cc",
|
|
|
|
"compiler/node-test-utils.cc",
|
|
|
|
"compiler/node-test-utils.h",
|
|
|
|
"compiler/node-unittest.cc",
|
|
|
|
"compiler/opcodes-unittest.cc",
|
2017-07-31 09:05:39 +00:00
|
|
|
"compiler/persistent-unittest.cc",
|
2018-09-19 12:24:12 +00:00
|
|
|
"compiler/redundancy-elimination-unittest.cc",
|
2016-12-17 00:24:36 +00:00
|
|
|
"compiler/regalloc/live-range-unittest.cc",
|
2020-07-24 11:13:09 +00:00
|
|
|
"compiler/regalloc/mid-tier-register-allocator-unittest.cc",
|
2016-12-17 00:24:36 +00:00
|
|
|
"compiler/regalloc/move-optimizer-unittest.cc",
|
|
|
|
"compiler/regalloc/register-allocator-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/schedule-unittest.cc",
|
|
|
|
"compiler/scheduler-rpo-unittest.cc",
|
|
|
|
"compiler/scheduler-unittest.cc",
|
[turbofan] Lower NumberConstant nodes to IntPtrConstant.
If a NumberConstant can be represented as a Smi, then lower it to a
IntPtrConstant node during simplified lowering. Thanks to this, all backends can
match Smi values that can also be encoded as immediates in the instruction
selector. Additionally, we can apply the same lowering to the CodeAssembler for
the snapshot.
As a result, we can remove `mov` instructions generated because Int32Matcher and
Int64Matcher didn't not recognize Smis:
For 32-bit target, it's common for Smis also be immediates: "if (a < 100) {}"
~~~
mov r1, #200 -> cmp r0, #200
cmp r0, r1 -> blt <>
blt <> ->
~~~
On Arm64 particularly, we lose opportunites to use `cbz`: "if (a == 0) {}"
~~~
movz x0, #0x0 -> cbz x1 <>
cmp x1, x0 ->
b.eq <> ->
~~~
Overall, we do not see an impact on benchmarks such as webtooling. However, we
do see noteworthy code size reduction, from 0.5% to 1.5%.
Bug:
Change-Id: I7fbb718ad51b9036c3514fa31c1326bdd6f2b0e6
Reviewed-on: https://chromium-review.googlesource.com/848814
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#50569}
2018-01-03 18:30:45 +00:00
|
|
|
"compiler/simplified-lowering-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"compiler/simplified-operator-reducer-unittest.cc",
|
|
|
|
"compiler/simplified-operator-unittest.cc",
|
|
|
|
"compiler/state-values-utils-unittest.cc",
|
|
|
|
"compiler/typed-optimization-unittest.cc",
|
|
|
|
"compiler/typer-unittest.cc",
|
|
|
|
"compiler/value-numbering-reducer-unittest.cc",
|
2016-10-10 19:00:31 +00:00
|
|
|
"compiler/zone-stats-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"date/date-cache-unittest.cc",
|
2021-07-23 07:42:08 +00:00
|
|
|
"debug/debug-property-iterator-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"diagnostics/eh-frame-iterator-unittest.cc",
|
|
|
|
"diagnostics/eh-frame-writer-unittest.cc",
|
[gdbjit] Fix overlapping AddressRegion check
Whenever we are adding a new AddressRegion to the CodeMap, we first
remove all overlapping regions. The logic to check for overlapping
region is incomplete. For example, if all existing regions are less than
the region to be added, we incorrectly remove all regions, effectively
deleting all JITCodeEntry we have constructed.
We extract this overlapping check into a helper function, so that we can
unittest this without worrying about JITCodeEvent functionality, and also
without dealing with V8 internals (like Isolate and SFI).
The overlapping logic is rather hard to understand, has many special
cases, it will probably be much easier to just loop through all the
entries, rather than using lower_bound. Ideally, we can refactor this to
use some sort of sweep-line algorithm. Hopefully the unittests catch the
most obvious cases.
Bug: v8:11908
Change-Id: Id96975599ac59974185c3dbf64cdfceb17e98d18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3105381
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76397}
2021-08-19 16:32:50 +00:00
|
|
|
"diagnostics/gdb-jit-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"execution/microtask-queue-unittest.cc",
|
2020-08-03 22:22:36 +00:00
|
|
|
"heap/allocation-observer-unittest.cc",
|
2019-02-22 17:34:05 +00:00
|
|
|
"heap/bitmap-test-utils.h",
|
2016-09-14 19:02:12 +00:00
|
|
|
"heap/bitmap-unittest.cc",
|
2019-05-16 18:07:24 +00:00
|
|
|
"heap/code-object-registry-unittest.cc",
|
2021-11-04 14:28:43 +00:00
|
|
|
"heap/cppgc-js/traced-reference-unittest.cc",
|
|
|
|
"heap/cppgc-js/unified-heap-snapshot-unittest.cc",
|
|
|
|
"heap/cppgc-js/unified-heap-unittest.cc",
|
|
|
|
"heap/cppgc-js/unified-heap-utils.cc",
|
|
|
|
"heap/cppgc-js/unified-heap-utils.h",
|
2016-12-20 09:35:05 +00:00
|
|
|
"heap/embedder-tracing-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"heap/gc-idle-time-handler-unittest.cc",
|
|
|
|
"heap/gc-tracer-unittest.cc",
|
2018-06-07 12:00:16 +00:00
|
|
|
"heap/heap-controller-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"heap/heap-unittest.cc",
|
2021-01-21 11:03:56 +00:00
|
|
|
"heap/heap-utils.cc",
|
2020-06-17 07:54:15 +00:00
|
|
|
"heap/heap-utils.h",
|
2020-09-11 18:39:53 +00:00
|
|
|
"heap/index-generator-unittest.cc",
|
2020-04-28 14:26:55 +00:00
|
|
|
"heap/list-unittest.cc",
|
2020-08-13 12:12:17 +00:00
|
|
|
"heap/local-factory-unittest.cc",
|
2020-03-11 13:35:39 +00:00
|
|
|
"heap/local-heap-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"heap/marking-unittest.cc",
|
2019-12-20 15:01:42 +00:00
|
|
|
"heap/marking-worklist-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"heap/memory-reducer-unittest.cc",
|
2018-01-23 10:51:58 +00:00
|
|
|
"heap/object-stats-unittest.cc",
|
2020-07-30 08:52:24 +00:00
|
|
|
"heap/persistent-handles-unittest.cc",
|
2021-08-19 09:45:09 +00:00
|
|
|
"heap/progressbar-unittest.cc",
|
2020-03-16 15:34:18 +00:00
|
|
|
"heap/safepoint-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"heap/slot-set-unittest.cc",
|
2017-04-05 07:36:15 +00:00
|
|
|
"heap/spaces-unittest.cc",
|
2017-02-10 14:26:04 +00:00
|
|
|
"heap/unmapper-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"interpreter/bytecode-array-builder-unittest.cc",
|
|
|
|
"interpreter/bytecode-array-iterator-unittest.cc",
|
2016-12-05 13:03:07 +00:00
|
|
|
"interpreter/bytecode-array-random-iterator-unittest.cc",
|
2017-06-27 08:44:35 +00:00
|
|
|
"interpreter/bytecode-array-writer-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"interpreter/bytecode-decoder-unittest.cc",
|
2017-06-27 08:44:35 +00:00
|
|
|
"interpreter/bytecode-node-unittest.cc",
|
2016-12-15 07:55:10 +00:00
|
|
|
"interpreter/bytecode-operands-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"interpreter/bytecode-register-allocator-unittest.cc",
|
|
|
|
"interpreter/bytecode-register-optimizer-unittest.cc",
|
2017-04-11 13:37:25 +00:00
|
|
|
"interpreter/bytecode-source-info-unittest.cc",
|
2016-09-19 10:58:59 +00:00
|
|
|
"interpreter/bytecode-utils.h",
|
2016-09-14 19:02:12 +00:00
|
|
|
"interpreter/bytecodes-unittest.cc",
|
|
|
|
"interpreter/constant-array-builder-unittest.cc",
|
|
|
|
"interpreter/interpreter-assembler-unittest.cc",
|
|
|
|
"interpreter/interpreter-assembler-unittest.h",
|
2020-04-24 13:14:50 +00:00
|
|
|
"libplatform/default-job-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"libplatform/default-platform-unittest.cc",
|
2019-03-19 09:23:34 +00:00
|
|
|
"libplatform/default-worker-threads-task-runner-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"libplatform/task-queue-unittest.cc",
|
|
|
|
"libplatform/worker-thread-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"logging/counters-unittest.cc",
|
|
|
|
"numbers/bigint-unittest.cc",
|
|
|
|
"numbers/conversions-unittest.cc",
|
|
|
|
"objects/object-unittest.cc",
|
2019-09-27 12:20:02 +00:00
|
|
|
"objects/osr-optimized-code-cache-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"objects/value-serializer-unittest.cc",
|
2020-01-07 16:22:12 +00:00
|
|
|
"objects/weakarraylist-unittest.cc",
|
2017-10-13 18:23:53 +00:00
|
|
|
"parser/ast-value-unittest.cc",
|
2017-04-18 14:01:12 +00:00
|
|
|
"parser/preparser-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"profiler/strings-storage-unittest.cc",
|
2021-05-14 09:35:03 +00:00
|
|
|
"regexp/regexp-unittest.cc",
|
2020-01-14 08:44:34 +00:00
|
|
|
"regress/regress-crbug-1041240-unittest.cc",
|
2020-02-28 23:41:01 +00:00
|
|
|
"regress/regress-crbug-1056054-unittest.cc",
|
2019-03-06 10:09:39 +00:00
|
|
|
"regress/regress-crbug-938251-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"run-all-unittests.cc",
|
2021-07-23 07:42:08 +00:00
|
|
|
"runtime/runtime-debug-unittest.cc",
|
V8 Sandbox rebranding
This CL renames a number of things related to the V8 sandbox.
Mainly, what used to be under V8_HEAP_SANDBOX is now under
V8_SANDBOXED_EXTERNAL_POINTERS, while the previous V8 VirtualMemoryCage
is now simply the V8 Sandbox:
V8_VIRTUAL_MEMORY_CAGE => V8_SANDBOX
V8_HEAP_SANDBOX => V8_SANDBOXED_EXTERNAL_POINTERS
V8_CAGED_POINTERS => V8_SANDBOXED_POINTERS
V8VirtualMemoryCage => Sandbox
CagedPointer => SandboxedPointer
fake cage => partially reserved sandbox
src/security => src/sandbox
This naming scheme should simplify things: the sandbox is now the large
region of virtual address space inside which V8 mainly operates and
which should be considered untrusted. Mechanisms like sandboxed pointers
are then used to attempt to prevent escapes from the sandbox (i.e.
corruption of memory outside of it). Furthermore, the new naming scheme
avoids the confusion with the various other "cages" in V8, in
particular, the VirtualMemoryCage class, by dropping that name entirely.
Future sandbox features are developed under their own V8_SANDBOX_X flag,
and will, once final, be merged into V8_SANDBOX. Current future features
are sandboxed external pointers (using the external pointer table), and
sandboxed pointers (pointers guaranteed to point into the sandbox, e.g.
because they are encoded as offsets). This CL then also introduces a new
build flag, v8_enable_sandbox_future, which enables all future features.
Bug: v8:10391
Change-Id: I5174ea8f5ab40fb96a04af10853da735ad775c96
Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3322981
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78384}
2021-12-15 13:39:15 +00:00
|
|
|
"sandbox/sandbox-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"strings/char-predicates-unittest.cc",
|
|
|
|
"strings/unicode-unittest.cc",
|
|
|
|
"tasks/background-compile-task-unittest.cc",
|
|
|
|
"tasks/cancelable-tasks-unittest.cc",
|
2017-04-18 14:01:12 +00:00
|
|
|
"test-helpers.cc",
|
|
|
|
"test-helpers.h",
|
2016-09-14 19:02:12 +00:00
|
|
|
"test-utils.cc",
|
|
|
|
"test-utils.h",
|
2018-07-24 13:16:38 +00:00
|
|
|
"torque/earley-parser-unittest.cc",
|
2019-03-04 15:24:39 +00:00
|
|
|
"torque/ls-json-unittest.cc",
|
|
|
|
"torque/ls-message-unittest.cc",
|
2019-03-06 08:16:03 +00:00
|
|
|
"torque/ls-server-data-unittest.cc",
|
2018-10-15 22:31:24 +00:00
|
|
|
"torque/torque-unittest.cc",
|
2019-03-05 10:01:53 +00:00
|
|
|
"torque/torque-utils-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"utils/allocation-unittest.cc",
|
|
|
|
"utils/detachable-vector-unittest.cc",
|
|
|
|
"utils/locked-queue-unittest.cc",
|
|
|
|
"utils/utils-unittest.cc",
|
2017-03-24 17:32:08 +00:00
|
|
|
"zone/zone-allocator-unittest.cc",
|
2016-10-26 17:07:48 +00:00
|
|
|
"zone/zone-chunk-list-unittest.cc",
|
2017-02-06 11:14:56 +00:00
|
|
|
"zone/zone-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
]
|
2016-06-01 12:28:57 +00:00
|
|
|
|
2021-04-12 14:38:06 +00:00
|
|
|
if (v8_enable_runtime_call_stats) {
|
|
|
|
sources += [ "logging/runtime-call-stats-unittest.cc" ]
|
|
|
|
}
|
|
|
|
|
2021-02-22 13:28:17 +00:00
|
|
|
if (v8_enable_webassembly) {
|
|
|
|
sources += [
|
2021-02-26 10:52:45 +00:00
|
|
|
"../../test/common/wasm/wasm-macro-gen.h",
|
2021-02-22 13:28:17 +00:00
|
|
|
"asmjs/asm-scanner-unittest.cc",
|
|
|
|
"asmjs/asm-types-unittest.cc",
|
Reland "[no-wasm] Exclude src/wasm from compilation"
This is a reland of 80f5dfda0147d6b078ae6c9d0eb947bd012bf72d. A condition
in pipeline.cc was inverted, which lead to a CSA verifier error.
Original change's description:
> [no-wasm] Exclude src/wasm from compilation
>
> This is the biggest chunk, including
> - all of src/wasm,
> - torque file for wasm objects,
> - torque file for wasm builtins,
> - wasm builtins,
> - wasm runtime functions,
> - int64 lowering,
> - simd scala lowering,
> - WasmGraphBuilder (TF graph construction for wasm),
> - wasm frame types,
> - wasm interrupts,
> - the JSWasmCall opcode,
> - wasm backing store allocation.
>
> Those components are all recursively entangled, so I found no way to
> split this change up further.
>
> Some includes that were recursively included by wasm headers needed to
> be added explicitly now.
>
> backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
> because it only tests wasm backing stores. This file is excluded from
> no-wasm builds then.
>
> R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
>
> Bug: v8:11238
> Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
> Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73344}
TBR=jgruber@chromium.org
Bug: v8:11238
Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73348}
2021-03-11 13:42:01 +00:00
|
|
|
"compiler/int64-lowering-unittest.cc",
|
|
|
|
"objects/wasm-backing-store-unittest.cc",
|
2021-02-26 10:52:45 +00:00
|
|
|
"wasm/control-transfer-unittest.cc",
|
|
|
|
"wasm/decoder-unittest.cc",
|
|
|
|
"wasm/function-body-decoder-unittest.cc",
|
|
|
|
"wasm/leb-helper-unittest.cc",
|
2021-03-12 11:36:52 +00:00
|
|
|
"wasm/liftoff-register-unittests.cc",
|
2021-02-26 10:52:45 +00:00
|
|
|
"wasm/loop-assignment-analysis-unittest.cc",
|
2021-09-08 13:22:38 +00:00
|
|
|
"wasm/memory-protection-unittest.cc",
|
2021-02-26 10:52:45 +00:00
|
|
|
"wasm/module-decoder-memory64-unittest.cc",
|
|
|
|
"wasm/module-decoder-unittest.cc",
|
|
|
|
"wasm/simd-shuffle-unittest.cc",
|
|
|
|
"wasm/streaming-decoder-unittest.cc",
|
|
|
|
"wasm/subtyping-unittest.cc",
|
|
|
|
"wasm/wasm-code-manager-unittest.cc",
|
|
|
|
"wasm/wasm-compiler-unittest.cc",
|
|
|
|
"wasm/wasm-macro-gen-unittest.cc",
|
|
|
|
"wasm/wasm-module-builder-unittest.cc",
|
|
|
|
"wasm/wasm-module-sourcemap-unittest.cc",
|
2021-02-22 13:28:17 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2020-04-17 08:05:00 +00:00
|
|
|
if (v8_enable_wasm_gdb_remote_debugging) {
|
|
|
|
sources += [ "wasm/wasm-gdbserver-unittest.cc" ]
|
|
|
|
}
|
|
|
|
|
2020-08-28 20:48:41 +00:00
|
|
|
if (v8_enable_conservative_stack_scanning) {
|
|
|
|
sources += [ "heap/object-start-bitmap-unittest.cc" ]
|
|
|
|
}
|
|
|
|
|
2016-07-15 22:32:55 +00:00
|
|
|
if (v8_current_cpu == "arm") {
|
Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 14:12:47 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-arm-unittest.cc",
|
|
|
|
"compiler/arm/instruction-selector-arm-unittest.cc",
|
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "arm64") {
|
Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 14:12:47 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-arm64-unittest.cc",
|
|
|
|
"compiler/arm64/instruction-selector-arm64-unittest.cc",
|
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "x86") {
|
Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 14:12:47 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-ia32-unittest.cc",
|
|
|
|
"compiler/ia32/instruction-selector-ia32-unittest.cc",
|
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
|
Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 14:12:47 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-mips-unittest.cc",
|
|
|
|
"compiler/mips/instruction-selector-mips-unittest.cc",
|
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
|
Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 14:12:47 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-mips64-unittest.cc",
|
|
|
|
"compiler/mips64/instruction-selector-mips64-unittest.cc",
|
|
|
|
]
|
2021-02-09 16:11:55 +00:00
|
|
|
} else if (v8_current_cpu == "riscv64") {
|
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-riscv64-unittest.cc",
|
|
|
|
"compiler/riscv64/instruction-selector-riscv64-unittest.cc",
|
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "x64") {
|
Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 14:12:47 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-x64-unittest.cc",
|
|
|
|
"compiler/x64/instruction-selector-x64-unittest.cc",
|
|
|
|
]
|
2021-02-26 10:52:45 +00:00
|
|
|
if (v8_enable_webassembly) {
|
|
|
|
sources += [ "wasm/trap-handler-x64-unittest.cc" ]
|
|
|
|
}
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
|
PPC/s390: Reland "[turboassembler] Introduce hard-abort mode"
Port d324382e1c090ac59d82088a13dfad9f69ff46bb
and
Port bd3f0a684b16dce081030eb83e2d102e40bd8f82
Original Commit Message:
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
R=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N
Change-Id: I60023470fa07576fd313f628ade06e279d5f4927
Reviewed-on: https://chromium-review.googlesource.com/1165822
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54980}
2018-08-08 13:55:50 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-ppc-unittest.cc",
|
|
|
|
"compiler/ppc/instruction-selector-ppc-unittest.cc",
|
|
|
|
]
|
2016-07-15 22:32:55 +00:00
|
|
|
} else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
|
PPC/s390: Reland "[turboassembler] Introduce hard-abort mode"
Port d324382e1c090ac59d82088a13dfad9f69ff46bb
and
Port bd3f0a684b16dce081030eb83e2d102e40bd8f82
Original Commit Message:
This is a reland of a462a7854a081f4f34bb4c112ee33f3d69efa309
Original change's description:
> [turboassembler] Introduce hard-abort mode
>
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
>
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
>
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
>
> R=mstarzinger@chromium.org
>
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}
R=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N
Change-Id: I60023470fa07576fd313f628ade06e279d5f4927
Reviewed-on: https://chromium-review.googlesource.com/1165822
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54980}
2018-08-08 13:55:50 +00:00
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-s390-unittest.cc",
|
|
|
|
"compiler/s390/instruction-selector-s390-unittest.cc",
|
|
|
|
]
|
2021-08-11 11:54:59 +00:00
|
|
|
} else if (v8_current_cpu == "loong64") {
|
|
|
|
sources += [
|
|
|
|
"assembler/turbo-assembler-loong64-unittest.cc",
|
|
|
|
"compiler/loong64/instruction-selector-loong64-unittest.cc",
|
|
|
|
]
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|
|
|
|
|
2021-09-17 11:05:18 +00:00
|
|
|
if (v8_enable_webassembly) {
|
|
|
|
if (is_posix) {
|
|
|
|
sources += [ "wasm/trap-handler-posix-unittest.cc" ]
|
|
|
|
}
|
2018-10-30 09:35:14 +00:00
|
|
|
|
2021-09-17 11:05:18 +00:00
|
|
|
if (is_win) {
|
2021-10-18 07:50:59 +00:00
|
|
|
sources += [ "wasm/trap-handler-win-unittest.cc" ]
|
2021-09-17 11:05:18 +00:00
|
|
|
}
|
2018-10-30 09:35:14 +00:00
|
|
|
|
2021-09-17 11:05:18 +00:00
|
|
|
# Include this test only on arm64 simulator builds on x64 on Linux, Mac and
|
|
|
|
# Windows.
|
|
|
|
if (current_cpu == "x64" && v8_current_cpu == "arm64" &&
|
|
|
|
(is_linux || is_mac || is_win)) {
|
|
|
|
sources += [ "wasm/trap-handler-simulator-unittest.cc" ]
|
|
|
|
}
|
2021-07-20 09:37:56 +00:00
|
|
|
}
|
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
configs = [
|
2020-06-17 07:54:15 +00:00
|
|
|
"../..:cppgc_base_config",
|
2016-06-01 12:28:57 +00:00
|
|
|
"../..:external_config",
|
|
|
|
"../..:internal_config_base",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
2019-02-12 08:41:25 +00:00
|
|
|
"..:common_test_headers",
|
2017-05-03 09:58:03 +00:00
|
|
|
"../..:v8_for_testing",
|
2016-10-07 07:56:43 +00:00
|
|
|
"../..:v8_libbase",
|
2016-06-01 12:28:57 +00:00
|
|
|
"../..:v8_libplatform",
|
2021-02-22 09:10:50 +00:00
|
|
|
"../..:v8_shared_internal_headers",
|
2022-01-19 10:41:08 +00:00
|
|
|
"../..:v8_version",
|
2019-11-12 09:13:48 +00:00
|
|
|
"../../third_party/inspector_protocol:crdtp_test",
|
2016-06-01 12:28:57 +00:00
|
|
|
"//build/win:default_exe_manifest",
|
2019-03-04 11:47:44 +00:00
|
|
|
"//testing/gmock",
|
|
|
|
"//testing/gtest",
|
2016-06-01 12:28:57 +00:00
|
|
|
]
|
|
|
|
|
2021-02-26 10:52:45 +00:00
|
|
|
if (v8_enable_webassembly) {
|
|
|
|
deps += [ "../..:wasm_test_common" ]
|
|
|
|
}
|
|
|
|
|
2016-06-03 08:21:11 +00:00
|
|
|
if (is_win) {
|
|
|
|
# This warning is benignly triggered by the U16 and U32 macros in
|
|
|
|
# bytecode-utils.h.
|
|
|
|
# C4309: 'static_cast': truncation of constant value
|
|
|
|
cflags = [ "/wd4309" ]
|
2021-10-18 07:50:59 +00:00
|
|
|
|
|
|
|
sources += [ "avoid-windows-h-includes.cc" ]
|
2016-06-03 08:21:11 +00:00
|
|
|
}
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|