v8/test/cctest
mtrofin 0c7ee92783 [wasm] Complete separation of compilation and instantiation
Support for serializing/deserializing the compiled wasm module.

We want to reuse the javascript snapshotting mechanics, at least in the
short term, when we still use the JS heap for the compiled wasm code.
Given that a module may be compiled in one v8 instance and then
instantiated later, in a different instance, whatever information we need
at instantiation time must also be serializable.

We currently hold on to the un-decoded wasm bytes, for enabling
debugging scenarios. This imposes a ~20% penalty on the memory
requirements of the wasm compiled code. We do not need this data
otherwise, for runtime, and it is sensible to consider eventually loading it
on demand. Therefore, I intentionally avoided relying on it and re-
decoding the wasm module data, and instead saved the information
necessary to support instantiation.

Given how whatever we need to persist must be serializable, the CL
uses a structure made out of serializable objects (fixed arrays mostly)
for storing this information. I preferred going this route rather than
adding more wasm-specific support to the serializer, given that we want
to eventually move off the JS heap, and therefore the serializer.

Additionally, it turns out this extra information is relatively not complex:
minimal structure, little nesting depth, mostly simple data like numbers
or byte blobs, or opaque data like compiled functions.

This CL also moves export compilation ahead of instantiation time.

This change added a helper getter to FixedArray, to make typed retrieval
of elements easier.

BUG=

Review-Url: https://codereview.chromium.org/2094563002
Cr-Commit-Position: refs/heads/master@{#37348}
2016-06-28 20:49:27 +00:00
..
compiler [turbofan] Introduce Float64Pow and NumberPow operators. 2016-06-28 10:26:10 +00:00
heap Revert of [heap] Reland uncommit unused large object page memory. (patchset #1 id:1 of https://codereview.chromium.org/2101383002/ ) 2016-06-28 20:22:35 +00:00
interpreter [turbofan] Introduce Float64Pow and NumberPow operators. 2016-06-28 10:26:10 +00:00
libsampler Reland: Create libsampler as V8 sampler library. 2016-05-26 02:14:50 +00:00
wasm [wasm] Complete separation of compilation and instantiation 2016-06-28 20:49:27 +00:00
BUILD.gn [gn] Use one source of truth for test source files. 2016-06-28 13:24:08 +00:00
cctest_exe.isolate [Swarming] Isolate perf tests. 2016-02-15 11:17:18 +00:00
cctest.cc [icu] Support loading data file from default location 2016-06-08 12:11:34 +00:00
cctest.gyp [gn] Use one source of truth for test source files. 2016-06-28 13:24:08 +00:00
cctest.h Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00
cctest.isolate [Interpreter] Refactor bytecode generator test suite. 2016-02-25 12:07:19 +00:00
cctest.status Revert of Implement WASM big-endian support (patchset #5 id:80001 of https://codereview.chromium.org/2034093002/ ) 2016-06-20 07:53:35 +00:00
DEPS
expression-type-collector-macros.h Make typing-asm match spec more closely around load/store, add more tests. 2015-11-30 21:11:47 +00:00
expression-type-collector.cc Remove Expression::bounds_, in order to conserve memory during parsing. 2016-05-12 22:24:30 +00:00
expression-type-collector.h Remove Expression::bounds_, in order to conserve memory during parsing. 2016-05-12 22:24:30 +00:00
gay-fixed.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js
OWNERS S390: Check in OWNER file on to s390 directory 2016-03-15 14:25:38 +00:00
print-extension.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
print-extension.h Remove deprecated functions the smaller half of the remaing tests 2015-11-17 12:42:44 +00:00
profiler-extension.cc Unflake CPU profiler tests. 2016-02-08 18:12:20 +00:00
profiler-extension.h Unflake CPU profiler tests. 2016-02-08 18:12:20 +00:00
test-access-checks.cc Optionally invoke an interceptor on failed access checks 2016-06-27 11:49:09 +00:00
test-accessors.cc Interceptors expect the receiver to always be an JSReceiver. 2016-05-12 11:06:11 +00:00
test-api-accessors.cc Generalize 'fast accessor' tests to work with --always-opt. 2016-01-14 14:25:02 +00:00
test-api-fast-accessor-builder.cc [crankshaft] Replace stub cache harvesting with a bit of type propagation 2016-02-15 15:22:00 +00:00
test-api-interceptors.cc [ic] Don't compile load interceptor handlers for LoadGlobalIC. 2016-06-23 16:51:14 +00:00
test-api.cc Remove all harmony runtime flags which shipped in M51 2016-06-24 01:13:10 +00:00
test-api.h Reland of place all remaining Oddball checks with new function (patchset #1 id:1 of https://codereview.chromium.org/2060213002/ ) 2016-06-14 10:09:38 +00:00
test-array-list.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-asm-validator.cc [asmjs] Validator should reject modules with repeated functions. 2016-06-06 13:40:42 +00:00
test-assembler-arm64.cc [arm64] Make sure that memory allocated for assembler tests is executable. 2016-02-29 10:52:34 +00:00
test-assembler-arm.cc [arm] Clean up handling of usat. 2016-05-12 18:20:30 +00:00
test-assembler-ia32.cc [ia32] Fixes a bug in cmpw. 2016-06-28 18:35:44 +00:00
test-assembler-mips64.cc MIPS: Fix unbounded label counter. 2016-04-28 11:01:12 +00:00
test-assembler-mips.cc MIPS: Fix unbounded label counter. 2016-04-28 11:01:12 +00:00
test-assembler-ppc.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-assembler-s390.cc PPC: [build] Fix a clang warning 2016-05-25 15:29:15 +00:00
test-assembler-x64.cc [x64] Fix invalid REX prefix for pslld, psrld and friends. 2016-06-01 07:59:56 +00:00
test-assembler-x87.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-ast-expression-visitor.cc Remove Expression::bounds_, in order to conserve memory during parsing. 2016-05-12 22:24:30 +00:00
test-ast.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00
test-atomicops.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-bignum-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-bignum.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-bit-vector.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00
test-circular-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-code-cache.cc This commit is the first step towards emitting unwinding information in 2016-06-27 15:10:41 +00:00
test-code-layout.cc This commit is the first step towards emitting unwinding information in 2016-06-27 15:10:41 +00:00
test-code-stub-assembler.cc [stubs] Implementing CodeStubAssembler::GetOwnProperty(). 2016-06-27 12:27:42 +00:00
test-code-stubs-arm64.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-arm.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-ia32.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-mips64.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-mips.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-x64.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-x87.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-code-stubs.h
test-compiler.cc Move of the type feedback vector to the closure. 2016-05-27 08:10:51 +00:00
test-constantpool.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-conversions.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-cpu-profiler.cc [Reland] Refactor CpuProfiler. 2016-06-22 16:45:51 +00:00
test-date.cc Only count legacy parser usage if legacy parser had effect. 2016-06-22 18:07:47 +00:00
test-debug.cc Add a convenience method to get the debugged context 2016-06-06 14:12:10 +00:00
test-decls.cc Remove support for legacy const, part 1 2016-03-22 17:52:13 +00:00
test-deoptimization.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-dictionary.cc [keys] support shadowing keys in the KeyAccumulator 2016-06-28 13:33:31 +00:00
test-disasm-arm64.cc Add {lda,stl}x?r{,b,h} instructions to ARM64 assembler/disassembler 2016-05-19 20:10:05 +00:00
test-disasm-arm.cc Add ldrex and strex instructions to ARM assembler/disassmbler 2016-05-19 19:13:12 +00:00
test-disasm-ia32.cc [ic] Split LoadIC into LoadGlobalIC and LoadIC. 2016-06-14 13:21:28 +00:00
test-disasm-mips64.cc Implement byte swapping instructions on MIPS32 and MIPS64. 2016-06-27 14:36:40 +00:00
test-disasm-mips.cc Implement byte swapping instructions on MIPS32 and MIPS64. 2016-06-27 14:36:40 +00:00
test-disasm-ppc.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-disasm-s390.cc S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
test-disasm-x64.cc [x64] Small fixes in the assembler and disassembler. 2016-06-17 09:28:47 +00:00
test-disasm-x87.cc [ic] Split LoadIC into LoadGlobalIC and LoadIC. 2016-06-14 13:21:28 +00:00
test-diy-fp.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-double.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-eh-frame-hdr.cc This commit is the first step towards emitting unwinding information in 2016-06-27 15:10:41 +00:00
test-elements-kind.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-experimental-extra.js Add experimental, non-snapshotted V8 extras 2015-08-20 00:01:14 +00:00
test-extra.js [bootstrapper] extra natives must not use natives syntax. 2016-02-05 12:33:55 +00:00
test-fast-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-feedback-vector.cc [ic] Split LoadIC into LoadGlobalIC and LoadIC. 2016-06-14 13:21:28 +00:00
test-feedback-vector.h The metadata part of TypeFeedbackVector is extracted to TypeFeedbackMetadata array. 2015-10-07 10:33:32 +00:00
test-field-type-tracking.cc Reland of place all remaining Oddball checks with new function (patchset #1 id:1 of https://codereview.chromium.org/2060213002/ ) 2016-06-14 10:09:38 +00:00
test-fixed-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-flags.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-func-name-inference.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-fuzz-arm64.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-global-handles.cc Introduce a new phantom weakness type without finalization callback. 2016-05-09 07:18:00 +00:00
test-global-object.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-hashing.cc S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
test-hashmap.cc Move hashmap into src/base. 2016-06-09 18:00:31 +00:00
test-heap-profiler.cc Move hashmap into src/base. 2016-06-09 18:00:31 +00:00
test-hydrogen-types.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-identity-map.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-inobject-slack-tracking.cc Refactor Object.prototype.toString() to use the instance type instead of class_name(). 2016-06-23 14:40:47 +00:00
test-javascript-arm64.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-js-arm64-variables.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-list.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-liveedit.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00
test-lockers.cc S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
test-log-stack-tracer.cc Split TickSample and Sampler. 2016-05-17 06:12:28 +00:00
test-log.cc Revert of [heap] Do not invoke GC to make heap iterable. (patchset #3 id:40001 of https://codereview.chromium.org/1992913004/ ) 2016-05-31 17:43:15 +00:00
test-macro-assembler-arm.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-macro-assembler-ia32.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-macro-assembler-mips64.cc Implement byte swapping instructions on MIPS32 and MIPS64. 2016-06-27 14:36:40 +00:00
test-macro-assembler-mips.cc Implement byte swapping instructions on MIPS32 and MIPS64. 2016-06-27 14:36:40 +00:00
test-macro-assembler-x64.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-macro-assembler-x87.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-mementos.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-parsing.cc [parser] report error for shorthand property "await" in async arrow formals 2016-06-27 21:12:19 +00:00
test-platform-linux.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-platform-win32.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-platform.cc [gn] Add cctest 2016-06-01 14:16:27 +00:00
test-profile-generator.cc [Reland] Refactor CpuProfiler. 2016-06-22 16:45:51 +00:00
test-random-number-generator.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-receiver-check-hidden-prototype.cc Fix the receiver check in the HandleFastApiCall builtin. 2016-01-14 12:24:04 +00:00
test-regexp.cc Remove all harmony runtime flags which shipped in M51 2016-06-24 01:13:10 +00:00
test-reloc-info.cc This commit is the first step towards emitting unwinding information in 2016-06-27 15:10:41 +00:00
test-representation.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-run-wasm-relocation-arm64.cc V8: Fix OS X build of ARM 64 test. 2016-05-09 17:30:56 +00:00
test-run-wasm-relocation-arm.cc Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code. 2016-05-04 20:20:50 +00:00
test-run-wasm-relocation-ia32.cc Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code. 2016-05-04 20:20:50 +00:00
test-run-wasm-relocation-x64.cc Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code. 2016-05-04 20:20:50 +00:00
test-run-wasm-relocation-x87.cc X87: Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code. 2016-05-06 07:31:04 +00:00
test-sampler-api.cc S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
test-serialize.cc [snapshot] revisit snapshot API. 2016-06-28 13:48:05 +00:00
test-simd.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-slots-buffer.cc [heap] Harden heap-related cctests 2016-05-20 13:32:50 +00:00
test-strings.cc Reland of place all remaining Oddball checks with new function (patchset #1 id:1 of https://codereview.chromium.org/2060213002/ ) 2016-06-14 10:09:38 +00:00
test-strtod.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-symbols.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-thread-termination.cc [json] check and handle interrupts. 2016-06-07 11:44:42 +00:00
test-threads.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-trace-event.cc [Tracing] Remove deprecated AddTraceEvent 2016-03-01 21:20:48 +00:00
test-transitions.cc Don't include field-type.h/field-index.h into property.h 2016-02-16 13:28:47 +00:00
test-typedarrays.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-types.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc [heap] Harden heap-related cctests 2016-05-20 13:32:50 +00:00
test-unique.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00
test-unscopables-hidden-prototype.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-usecounters.cc add use counters for __defineGetter__ failing 2016-06-24 22:05:03 +00:00
test-utils-arm64.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-utils-arm64.h [test] Test expectations in cctest should use CHECK and not DCHECK. 2015-12-07 05:37:15 +00:00
test-utils.cc [serializer] split up src/snapshot/serialize.* 2016-03-01 14:44:08 +00:00
test-version.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-weakmaps.cc [heap] Harden heap-related cctests 2016-05-20 13:32:50 +00:00
test-weaksets.cc [heap] Harden heap-related cctests 2016-05-20 13:32:50 +00:00
testcfg.py [test] Fix deterministic test shards. 2016-03-31 07:38:22 +00:00
trace-extension.cc [build] Fix a clang warning 2016-05-24 10:47:24 +00:00
trace-extension.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
types-fuzz.h Remove the template magic from types.(h|cc), remove types-inl.h. 2016-02-02 07:26:06 +00:00