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")
|
|
|
|
|
2020-02-11 12:10:32 +00:00
|
|
|
cr_fuchsia_package("v8_unittests_pkg") {
|
2019-12-05 13:30:12 +00:00
|
|
|
testonly = true
|
|
|
|
binary = ":unittests"
|
|
|
|
package_name_override = "v8_unittests"
|
|
|
|
}
|
|
|
|
|
|
|
|
fuchsia_package_runner("v8_unittests_fuchsia") {
|
|
|
|
testonly = true
|
|
|
|
package = ":v8_unittests_pkg"
|
|
|
|
package_name_override = "v8_unittests"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
v8_executable("unittests") {
|
2016-06-01 12:28:57 +00:00
|
|
|
testonly = true
|
|
|
|
|
2017-09-28 17:55:52 +00:00
|
|
|
# TODO(machenbach): Translate from gyp.
|
|
|
|
#['OS=="aix"', {
|
|
|
|
# 'ldflags': [ '-Wl,-bbigtoc' ],
|
|
|
|
#}],
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":unittests_sources",
|
|
|
|
"../..: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-02-26 08:14:07 +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",
|
2017-04-25 11:29:17 +00:00
|
|
|
"../../test/common/wasm/wasm-macro-gen.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",
|
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",
|
2017-03-16 18:10:45 +00:00
|
|
|
"asmjs/asm-scanner-unittest.cc",
|
2017-05-09 12:24:09 +00:00
|
|
|
"asmjs/asm-types-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",
|
2018-05-22 16:58:12 +00:00
|
|
|
"base/list-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"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",
|
2019-07-16 14:22:44 +00:00
|
|
|
"base/vlq-base64-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",
|
|
|
|
"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",
|
|
|
|
"compiler/graph-reducer-unittest.cc",
|
|
|
|
"compiler/graph-reducer-unittest.h",
|
|
|
|
"compiler/graph-trimmer-unittest.cc",
|
|
|
|
"compiler/graph-unittest.cc",
|
|
|
|
"compiler/graph-unittest.h",
|
|
|
|
"compiler/int64-lowering-unittest.cc",
|
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",
|
|
|
|
"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",
|
|
|
|
"diagnostics/eh-frame-iterator-unittest.cc",
|
|
|
|
"diagnostics/eh-frame-writer-unittest.cc",
|
|
|
|
"execution/microtask-queue-unittest.cc",
|
2017-08-30 11:09:09 +00:00
|
|
|
"heap/barrier-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",
|
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",
|
2017-05-16 20:57:05 +00:00
|
|
|
"heap/item-parallel-job-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",
|
[offthread] Add OffThreadFactory
Introduce OffThreadFactory with initial string construction support.
The OffThreadFactory shares with Factory a new CRTP base class, called
FactoryBase. Methods in FactoryBase return a FactoryHandle<Factory, T>
alias, which is Handle<T> for normal Factory and a new OffThreadHandle<T>
for OffThreadFactory. OffThreadHandle<T> behaves like Handle<T>, except
it stores the object in-line rather than needing external storage.
Any shared factory methods are moved into FactoryBase, which uses CRTP
to call the sub-class's AllocateRaw method (plus a few more customization
points which need Isolate access on the main thread).
Methods that used to take an Isolate or Factory, and are needed off the
main thread, are now expected to be templated on the factory type and
to use the appropriate handle.
Once an OffThreadFactory has finished being used (e.g. off-thread
compilation completed) its pages are "Published" into the main-thread
Heap. To deal with string internalization without creating a bunch of
ThinStrings, this is done in two stages:
1. 'FinishOffThread': The off-thread pages are walked to
collect all slots pointing to "internalized" strings. After this is
called it is invalid to allocate any more objects with the factory.
2. 'Publish': On the main thread, we transform these slots into
<Handle to holder, offset> pairs, then for each saved slot
re-internalize its string and update the slot to point to the
internalized string.
Bug: chromium:1011762
Change-Id: I008a694da3c357de34362bd86fe7e1f46b535d5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1992434
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65787}
2020-01-15 11:47:41 +00:00
|
|
|
"heap/off-thread-factory-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",
|
2017-06-23 10:44:53 +00:00
|
|
|
"heap/worklist-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",
|
|
|
|
"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",
|
2019-09-09 10:19:34 +00:00
|
|
|
"objects/backing-store-unittest.cc",
|
2019-05-27 08:15:15 +00:00
|
|
|
"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",
|
2020-01-14 08:44:34 +00:00
|
|
|
"regress/regress-crbug-1041240-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",
|
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",
|
2019-11-25 15:20:49 +00:00
|
|
|
"utils/vector-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"wasm/control-transfer-unittest.cc",
|
|
|
|
"wasm/decoder-unittest.cc",
|
2016-12-21 12:42:06 +00:00
|
|
|
"wasm/function-body-decoder-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"wasm/leb-helper-unittest.cc",
|
|
|
|
"wasm/loop-assignment-analysis-unittest.cc",
|
|
|
|
"wasm/module-decoder-unittest.cc",
|
2017-05-11 08:51:54 +00:00
|
|
|
"wasm/streaming-decoder-unittest.cc",
|
2017-12-05 01:47:59 +00:00
|
|
|
"wasm/wasm-code-manager-unittest.cc",
|
2018-12-11 14:07:22 +00:00
|
|
|
"wasm/wasm-compiler-unittest.cc",
|
2016-09-14 19:02:12 +00:00
|
|
|
"wasm/wasm-macro-gen-unittest.cc",
|
2016-09-29 11:29:05 +00:00
|
|
|
"wasm/wasm-module-builder-unittest.cc",
|
2019-08-24 06:44:39 +00:00
|
|
|
"wasm/wasm-module-sourcemap-unittest.cc",
|
2017-01-20 13:28:29 +00:00
|
|
|
"wasm/wasm-opcodes-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
|
|
|
|
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",
|
|
|
|
]
|
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",
|
2018-11-27 13:58:18 +00:00
|
|
|
"wasm/trap-handler-x64-unittest.cc",
|
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
|
|
|
]
|
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",
|
|
|
|
]
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|
|
|
|
|
2018-10-30 09:35:14 +00:00
|
|
|
if (is_posix) {
|
|
|
|
sources += [ "wasm/trap-handler-posix-unittest.cc" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_win) {
|
|
|
|
sources += [ "wasm/trap-handler-win-unittest.cc" ]
|
|
|
|
}
|
|
|
|
|
2016-06-14 10:07:22 +00:00
|
|
|
configs = [
|
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",
|
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
|
|
|
]
|
|
|
|
|
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" ]
|
|
|
|
}
|
2016-06-01 12:28:57 +00:00
|
|
|
}
|