v8/test/cctest/compiler
Tobias Tebbi 4f48d04f97 [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long
This adds a simple counter to Turbofan that's incremented throughout the compilation, hopefully
frequently enough so we can use it to detect divergence and performance bugs.
In addition, we assert that this counter never gets too high. That's the equivalent of a simple
timeout, just more deterministic. The limitations on Turbofan input size should guarantee that
we never exceed this limit. Since we probably do exceed it rarely, this check is only a DCHECK and
intended to detect performance and divergence issues, but not supposed to be performed in release
builds.

In addition, this CL adds UMA stats to observe the real world distribution of the tick measurement.

Bug: v8:9444

Change-Id: I182dac6ecac64715e3f5885ff5c7c17549351cd0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695475
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62754}
2019-07-17 07:00:00 +00:00
..
c-signature.h [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
call-tester.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
code-assembler-tester.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
codegen-tester.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
codegen-tester.h Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
function-tester.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
function-tester.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
graph-and-builders.h [cleanup] Removing GraphBuilderTester class 2019-05-07 09:54:51 +00:00
serializer-tester.cc [TurboFan] Serializing context information 2019-06-26 08:25:53 +00:00
serializer-tester.h [turbofan] Don't allocate JSHeapBroker in the zone 2019-05-02 13:02:19 +00:00
test-basic-block-profiler.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-branch-combine.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-code-assembler.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-code-generator.cc [wasm-c-api] Faster C-to-Wasm entry 2019-06-27 13:39:48 +00:00
test-gap-resolver.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-graph-visualizer.cc
test-instruction-scheduler.cc [turbofan] Implement loop rotation 2018-11-16 13:52:12 +00:00
test-instruction.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-js-constant-cache.cc Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
test-js-context-specialization.cc [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
test-js-typed-lowering.cc [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
test-jump-threading.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-linkage.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-loop-analysis.cc [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
test-machine-operator-reducer.cc [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
test-multiple-return.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-node.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-operator.cc
test-representation-change.cc [turbofan] Push BigInt truncation over addition and heap constants 2019-07-12 09:05:29 +00:00
test-run-bytecode-graph-builder.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-run-calls-to-external-references.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-run-deopt.cc Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
test-run-intrinsics.cc Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
test-run-jsbranches.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-run-jscalls.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-run-jsexceptions.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-run-jsobjects.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-run-jsops.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-run-load-store.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-run-machops.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-run-native-calls.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-run-retpoline.cc Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
test-run-stackcheck.cc Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
test-run-tail-calls.cc Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
test-run-unwinding-info.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-run-variables.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
value-helper.cc
value-helper.h Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00