v8/test/cctest
Yang Guo 0a7e08ef26 [compiler] finalize compile jobs asap when compiling on main thread
Previously, we finalize all compile jobs at once. This keeps the zone memory
in every compile job alive until the end. This contributes to a high peak
memory when many functions are compiled eagerly, for example when producing
cache data for the ServiceWorker cache.

Memory tracked by the AccountingAllocator in bytes, prior to this change in
the test case:
peak memory after init:              8192
peak memory after lazy compile:     41200
peak memory after lazy compile:     41200
peak memory after eager compile:   164256

With this change, if we are compiling on the main thread, we finalize every
compile job as soon as it is done and dispose the compile job and its zone
memory.

After this change:
peak memory after init:              8192
peak memory after lazy compile:     41200
peak memory after lazy compile:     41200
peak memory after eager compile:    41376

R=leszeks@chromium.org, rmcilroy@chromium.org

Bug: chromium:901329
Change-Id: Iae0c89396c89692c4ecdeec3970d3c62031d2bce
Reviewed-on: https://chromium-review.googlesource.com/c/1322949
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57340}
2018-11-08 07:29:15 +00:00
..
compiler Reland "[ptr-compr] Fix incorrectly used machine types" 2018-11-07 11:29:32 +00:00
heap [ptr-compr] Make cleared weak reference value pointer compression friendly 2018-11-07 13:28:43 +00:00
interpreter Rename fields to names or members 2018-11-06 16:04:08 +00:00
libplatform [tracing] Custom tag for the traceEvents array 2018-05-07 16:54:59 +00:00
libsampler [cleanup] Refactor general tests to use default members. 2018-09-14 14:40:47 +00:00
parsing [parser] Remove FLAG_preparser_scope_analysis and friends 2018-10-09 09:31:03 +00:00
torque [torque] allow qualified access to different modules/namespaces 2018-11-05 13:34:03 +00:00
wasm Reland "[wasm-simd] Implement remaining I8x16 SIMD ops on x64" 2018-11-07 18:42:23 +00:00
assembler-helper-arm.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
assembler-helper-arm.h
BUILD.gn Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
cctest.cc [heap] Remove marking finalization flag 2018-09-19 09:08:35 +00:00
cctest.h [ia32,root] Remove ebx from ALLOCATABLE_GENERAL_REGISTERS 2018-10-26 08:33:48 +00:00
cctest.status [cpu-profiler] Skip a failing test for multiple isolates 2018-11-06 11:03:40 +00:00
DEPS [torque]: Add the ability to test Torque functionality with cctest 2018-05-13 10:58:56 +00:00
expression-type-collector-macros.h
gay-fixed.cc
gay-fixed.h
gay-precision.cc
gay-precision.h
gay-shortest.cc
gay-shortest.h
log-eq-of-logging-and-traversal.js [log] Improve log parsing 2018-06-20 13:40:22 +00:00
OWNERS Update MIPS file ownership to @wavecomp.com e-mail addresses 2018-07-26 16:28:10 +00:00
print-extension.cc
print-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
profiler-extension.cc Reland "[Compile] Ensure we don't access the native context during bytecode finalization." 2018-10-26 22:33:56 +00:00
profiler-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
scope-test-helper.h [Parser] Split building logic out of ProducedPreParserScopeData. 2018-09-07 11:39:58 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
test-access-checks.cc
test-accessor-assembler.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-accessors.cc [cleanup] Replace 0 and NULL with nullptr for test files. 2018-09-14 12:56:00 +00:00
test-allocation.cc Clean up VirtualMemory allocation 2018-09-17 10:16:38 +00:00
test-api-accessors.cc [cleanup] Replace 0 and NULL with nullptr for test files. 2018-09-14 12:56:00 +00:00
test-api-interceptors.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-api.cc [api] Allow embedder to construct an Array from Local<Value>* 2018-11-06 08:17:08 +00:00
test-api.h
test-array-list.cc [explicit isolates] Remove GetIsolate from objects.cc 2018-07-13 12:42:14 +00:00
test-assembler-arm64.cc Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
test-assembler-arm.cc [arm] Eliminate old form of core-scalar vmov instructions. 2018-07-24 17:39:24 +00:00
test-assembler-ia32.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-assembler-mips64.cc [mips] Port [turbofan] Implement constant folding of string concatenations 2018-09-20 15:15:12 +00:00
test-assembler-mips.cc MIPS[64] Optimize trampoline and long branches. 2018-08-13 11:31:36 +00:00
test-assembler-ppc.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-assembler-s390.cc s390: Corrections to brxh / brxhg cctests in test-assembler-s390.cc 2018-07-30 20:40:21 +00:00
test-assembler-x64.cc [cleanup] Replace old c-style casts with c++ casts. 2018-09-13 14:48:25 +00:00
test-atomicops.cc
test-bignum-dtoa.cc
test-bignum.cc
test-bit-vector.cc
test-circular-queue.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-code-layout.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stub-assembler.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-code-stubs-arm64.cc [test] Remove superflous FlushICache calls. 2018-07-31 18:19:42 +00:00
test-code-stubs-arm.cc [test] Remove superflous FlushICache calls. 2018-07-31 18:19:42 +00:00
test-code-stubs-ia32.cc [ia32,root] Use root register config in tests 2018-10-02 15:53:03 +00:00
test-code-stubs-mips64.cc [test] Remove superflous FlushICache calls. 2018-07-31 18:19:42 +00:00
test-code-stubs-mips.cc [test] Remove superflous FlushICache calls. 2018-07-31 18:19:42 +00:00
test-code-stubs-x64.cc Reland "[turboassembler] Introduce hard-abort mode" 2018-07-24 15:58:46 +00:00
test-code-stubs.cc [ubsan] Fix many static_cast<int32_t> with undefined behavior 2018-04-17 02:02:18 +00:00
test-code-stubs.h
test-compiler.cc [compiler] finalize compile jobs asap when compiling on main thread 2018-11-08 07:29:15 +00:00
test-constantpool.cc [assembler] Move ConstantPools out of src/assembler.h 2018-10-19 11:38:39 +00:00
test-conversions.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-cpu-profiler.cc [cpu-profiler] Add a basic test for multiple isolates profiling 2018-11-02 10:35:24 +00:00
test-date.cc [Intl] Move cachedOrNewService to C++ w/o caching 2018-11-02 07:08:26 +00:00
test-debug.cc [builtins] Remove lazy deserialization 2018-10-29 10:16:33 +00:00
test-decls.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-deoptimization.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-dictionary.cc [ReadOnlyRoots] Make empty_property_dictionary a RO root 2018-10-09 15:15:50 +00:00
test-disasm-arm64.cc [arm64] Fix disassembler for ADR with negative offsets. 2018-10-22 14:53:20 +00:00
test-disasm-arm.cc [arm] Implement I64Atomic operations on Arm 2018-08-25 09:59:17 +00:00
test-disasm-ia32.cc [turbofan] Further optimize DataView accesses. 2018-08-14 09:20:47 +00:00
test-disasm-mips64.cc [mips64] Deprecate use of J and JAL instructions 2018-09-13 09:39:21 +00:00
test-disasm-mips.cc [turbofan] Thread through AssemblerOptions 2018-07-06 09:42:00 +00:00
test-disasm-ppc.cc [turbofan] Thread through AssemblerOptions 2018-07-06 09:42:00 +00:00
test-disasm-s390.cc [turbofan] Thread through AssemblerOptions 2018-07-06 09:42:00 +00:00
test-disasm-x64.cc Reland^2 "[Liftoff] Implement f32.copysign and f64.copysign" 2018-09-12 08:33:24 +00:00
test-diy-fp.cc
test-double.cc
test-dtoa.cc
test-elements-kind.cc Reland: [iwyu] Remove sfi-inl.h -> wasm include 2018-07-25 14:54:37 +00:00
test-experimental-extra.js
test-extra.js
test-fast-dtoa.cc
test-feedback-vector.cc [Lite] Disable ICs in lite mode 2018-10-26 16:07:20 +00:00
test-feedback-vector.h
test-field-type-tracking.cc [ubsan] Port FieldType to the new design 2018-11-06 17:22:17 +00:00
test-fixed-dtoa.cc
test-flags.cc [d8] only add arguments object if arguments are provided 2018-10-23 11:46:53 +00:00
test-func-name-inference.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-fuzz-arm64.cc Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
test-global-handles.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-global-object.cc [iwyu] api.h iwyu 2018-07-20 11:49:02 +00:00
test-hashcode.cc [iwyu] api.h iwyu 2018-07-20 11:49:02 +00:00
test-hashmap.cc
test-heap-profiler.cc [heap-profiler] Fix a use-after-free when snapshots are deleted 2018-10-30 09:37:12 +00:00
test-identity-map.cc Reland "[ubsan] Replace Object** in GlobalHandles" 2018-10-31 23:56:23 +00:00
test-inobject-slack-tracking.cc Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
test-inspector.cc [cleanup] Refactor inspector to use default members. 2018-09-18 09:13:59 +00:00
test-intl.cc [Intl] Decentralize GetAvailableLocales 2018-10-24 01:41:10 +00:00
test-isolate-independent-builtins.cc Reland "[turboassembler] Introduce hard-abort mode" 2018-07-24 15:58:46 +00:00
test-javascript-arm64.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-js-arm64-variables.cc
test-js-weak-refs.cc [ubsan,heap] Replace Object** with ObjectSlot 2018-10-24 00:14:20 +00:00
test-liveedit.cc [cleanup] Replace calls to deprecated String::Concat and ToInt32 from tests. 2018-07-24 17:30:14 +00:00
test-lockers.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-log-stack-tracer.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-log.cc Revert "[turbofan] Do not consume SignedSmall feedback in TurboFan anymore." 2018-10-07 10:19:01 +00:00
test-macro-assembler-arm.cc Reland "[turboassembler] Introduce hard-abort mode" 2018-07-24 15:58:46 +00:00
test-macro-assembler-mips64.cc [cleanup] Move enum Heap::RootListIndex to enum class RootIndex 2018-09-20 11:16:05 +00:00
test-macro-assembler-mips.cc [cleanup] Move enum Heap::RootListIndex to enum class RootIndex 2018-09-20 11:16:05 +00:00
test-macro-assembler-x64.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-managed.cc Add size estimate to Managed<T> 2018-05-30 10:26:21 +00:00
test-mementos.cc [heap] Remove support for aborting incremental marking 2018-09-17 10:44:52 +00:00
test-modules.cc
test-object.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-orderedhashtable.cc [GetIsolate] Remove (most) GetIsolate from src/objects-debug.cc 2018-06-21 16:34:27 +00:00
test-parsing.cc [parser] Introduce FailureExpression to return instead of nullptr 2018-11-07 16:45:10 +00:00
test-platform.cc s390: Edited Generate_CEntry to correctly return buffer when built with clang 2018-09-05 07:01:16 +00:00
test-poison-disasm-arm.cc [test] Add type confusion poisoning test for polymorhic access. 2018-10-10 17:57:57 +00:00
test-profile-generator.cc [Lite] Disable optimization for Lite mode. 2018-10-22 13:16:24 +00:00
test-random-number-generator.cc
test-regexp.cc parsing: Lock ExternalStrings in the ExternalStringStream. 2018-09-04 14:09:04 +00:00
test-representation.cc
test-roots.cc [js weak refs] Add WeakRef 2018-11-05 15:10:46 +00:00
test-sampler-api.cc [cleanup] Refactor general tests to use default members. 2018-09-14 14:40:47 +00:00
test-serialize.cc [snapshot] clear internal fields that are serialized by callback 2018-11-06 11:48:19 +00:00
test-smi-lexicographic-compare.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-strings.cc Move MessageTemplate enum into its own header file 2018-10-11 23:01:32 +00:00
test-strtod.cc
test-symbols.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-sync-primitives-arm64.cc [base] Introduce MutexGuard as typedef for LockGuard<Mutex> 2018-10-12 15:44:51 +00:00
test-sync-primitives-arm.cc [base] Introduce MutexGuard as typedef for LockGuard<Mutex> 2018-10-12 15:44:51 +00:00
test-thread-termination.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-threads.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-trace-event.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-traced-value.cc [tracing] Escape UTF8 strings in JSON compliant form. 2018-10-31 17:46:52 +00:00
test-transitions.cc [ubsan] Port FieldType to the new design 2018-11-06 17:22:17 +00:00
test-transitions.h [explicit isolates] Eliminate GetIsolate from transitions.cc 2018-06-05 11:00:43 +00:00
test-typedarrays.cc Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
test-types.cc [turbofan] Put some tests under a canonical handle scope. 2018-07-31 18:20:53 +00:00
test-unbound-queue.cc
test-unboxed-doubles.cc [assembler] Move ConstantPools out of src/assembler.h 2018-10-19 11:38:39 +00:00
test-unscopables-hidden-prototype.cc
test-usecounters.cc [counters] add use count for the "override mistake" 2018-10-16 21:34:23 +00:00
test-utils-arm64.cc Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
test-utils-arm64.h
test-utils.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-version.cc
test-weakmaps.cc [heap] Remove support for aborting incremental marking 2018-09-17 10:44:52 +00:00
test-weaksets.cc [heap] Remove support for aborting incremental marking 2018-09-17 10:44:52 +00:00
testcfg.py [test] Add non-d8 test suites to Android testing 2018-09-11 11:12:21 +00:00
trace-extension.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
trace-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
types-fuzz.h [turbofan] Prepare broker for serialization. 2018-07-23 17:20:49 +00:00
unicode-helpers.cc [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. 2018-09-07 10:28:40 +00:00
unicode-helpers.h [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. 2018-09-07 10:28:40 +00:00