v8/test/cctest
Clemens Backes 13cdf3a7fc Reland "[wasm] Further reduce the size of WasmCode"
This is a reland of 79398ab09d

Original change's description:
> [wasm] Further reduce the size of WasmCode
>
> Also, save dynamic allocations (plus their memory overhead).
> This is realized by storing the relocation information, source position
> table, and protected instruction information together in one "metadata"
> byte array.
> For each of the three components, we just store their size, such that
> the accessors can return the respecitive {Vector} views as before.
>
> This makes each WasmCode object 24 bytes smaller on 64-bit
> architectures. It also saves a few more bytes per code object because
> less padding is needed for the individual allocations, and each dynamic
> allocation comes with some constant memory overhead.
>
> Since the protected instructions will just be stored in a byte array
> now, some APIs are refactored to just return that byte array directly
> (instead of an array of {ProtectedInstructionData}). This also
> simplifies serialization and deserialization, and will allow for
> switching to a more compact representation in the future.
>
> Drive-by: Add some more checks to {Vector::cast} to protect against
>   undefined behaviour.
>
> R=ahaas@chromium.org
>
> Bug: v8:10254
> Change-Id: I81ca847023841110e3e52cc402fcb0349325d7af
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2078545
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#66596}

Tbr: ahaas@chromium.org
Bug: v8:10254
Change-Id: Idcdcb4f13c3eb7a3f7fb5ef8a1229103ca0ae975
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089934
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66598}
2020-03-05 16:21:18 +00:00
..
compiler [keys] Handle RangeError in GetKeysWithPrototypeInfoCache 2020-03-04 13:38:10 +00:00
heap [keys] Handle RangeError in GetKeysWithPrototypeInfoCache 2020-03-04 13:38:10 +00:00
interpreter [off-thread] Get rid of OffThreadHandle 2020-03-02 09:42:15 +00:00
libplatform Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
libsampler
parsing [parser] Remove script handle from ParseInfo 2020-01-08 13:16:05 +00:00
torque [torque] Implement Rest/Strict/Sloppy argument stubs in Torque 2019-12-19 11:00:10 +00:00
wasm Reland "[wasm] Further reduce the size of WasmCode" 2020-03-05 16:21:18 +00:00
assembler-helper-arm.cc [cleanup] Drop some dead (Macro)Assembler code 2019-05-27 08:53:28 +00:00
assembler-helper-arm.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
BUILD.gn Roll Perfetto forward, adapting to proto_library changes 2020-03-04 14:51:41 +00:00
cctest.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
cctest.h Reland "[arm64] Protect return addresses stored on stack" 2020-02-13 12:26:25 +00:00
cctest.status Reland "Update unicode-regexp-ignore-case-noi18n expectations" 2020-03-03 07:30:07 +00:00
collector.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
DEPS Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
disasm-regex-helper.cc [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
disasm-regex-helper.h [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
expression-type-collector-macros.h
gay-fixed.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-fixed.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-precision.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-precision.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-shortest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-shortest.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
manually-externalized-buffer.h [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
OWNERS [owners] Remove redundant OWNERS files in test/ 2019-06-24 12:44:32 +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
profiler-extension.h
scope-test-helper.h
setup-isolate-for-tests.cc
setup-isolate-for-tests.h Move initialization code into src/init 2019-05-16 12:36:15 +00:00
test-access-checks.cc
test-accessor-assembler.cc [cleanpup][ic] Tnodify accessor-assembler 2019-11-13 14:45:34 +00:00
test-accessors.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-allocation.cc [utils] Fix Malloced implementation 2019-07-15 09:59:22 +00:00
test-api-accessors.cc [inspector] Add "disableBreaks" parameter to "Runtime.evaluate". 2019-09-27 12:16:01 +00:00
test-api-array-buffer.cc [api] New function for reallocating ArrayBuffer backing store 2020-01-30 12:05:17 +00:00
test-api-interceptors.cc Rename and retype Symbol name to description 2019-10-30 10:38:55 +00:00
test-api-stack-traces.cc [debug] Revert to old line number behavior for new Function() 2019-11-28 12:01:39 +00:00
test-api-typed-array.cc [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
test-api-wasm.cc [wasm] Deprecate unused {DeserializeOrCompile} API 2020-01-22 08:46:23 +00:00
test-api.cc [heap] Restrict usages of AlwaysAllocateScope 2020-03-03 11:24:33 +00:00
test-api.h [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +00:00
test-array-list.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-assembler-arm64.cc [arm64][msvc] fix cctest build for ARM64 MSVC 2020-02-24 21:25:32 +00:00
test-assembler-arm.cc [wasm-simd] Fix unsigned narrow instructions 2019-11-19 18:51:09 +00:00
test-assembler-ia32.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-assembler-mips64.cc [mips][heap] Remove dynamic allocation flag on NewNumber functions 2019-09-17 14:07:59 +00:00
test-assembler-mips.cc [mips][heap] Remove dynamic allocation flag on NewNumber functions 2019-09-17 14:07:59 +00:00
test-assembler-ppc.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-assembler-s390.cc [s390]tm family test: change a label name 2019-07-22 20:05:10 +00:00
test-assembler-x64.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-atomicops.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-backing-store.cc Reland x6 [arraybuffer] Rearchitect backing store ownership 2019-09-09 13:07:42 +00:00
test-bignum-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bignum.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bit-vector.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-circular-queue.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-code-layout.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-code-pages.cc heap: Avoid allocating a code range when running in jitless mode 2020-02-21 12:41:50 +00:00
test-code-stub-assembler.cc [cleanup] TNodify Property and Prototype functions 2020-02-20 16:16:01 +00:00
test-compiler.cc [compiler] Ensure source positions collected when required 2019-11-28 20:14:37 +00:00
test-constantpool.cc [ppc64][ppc] Split up ARCH_PPC and ARCH_PPC64 2020-02-21 15:42:20 +00:00
test-conversions.cc [cleanup] Split out bit-field.h and bounds.h from utils/utils.h 2019-11-15 13:00:08 +00:00
test-cpu-profiler.cc [cpu-profiler] Use a min num of samples in CPU profiler tests 2020-01-02 14:48:14 +00:00
test-date.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-debug-helper.cc Reland "[torque] Support bitfield structs stored within Smis" 2020-02-26 15:50:03 +00:00
test-debug.cc [offthread] Add off-thread support to Script 2020-02-11 09:45:33 +00:00
test-decls.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-deoptimization.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dictionary.cc Update Dictionary classes to use InternalIndex 2019-10-16 13:11:55 +00:00
test-disasm-arm64.cc [arm64] Add support for BTI instruction 2020-02-03 15:21:59 +00:00
test-disasm-arm.cc [wasm-simd] Implement i64x2.mul on arm 2020-01-17 18:02:17 +00:00
test-disasm-ia32.cc [wasm-simd][ia32] Implement integer absolute 2020-02-28 03:17:36 +00:00
test-disasm-mips64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-mips.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-ppc.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-s390.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-x64.cc [wasm-simd][x64] Add AVX codegen for i32x4 conversions and hadd 2020-03-04 19:33:11 +00:00
test-diy-fp.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-double.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-elements-kind.cc Add new nonextensible element kinds 2019-08-28 17:24:49 +00:00
test-factory.cc heap: Avoid allocating a code range when running in jitless mode 2020-02-21 12:41:50 +00:00
test-fast-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-feedback-vector.cc [Turbofan] Allow CallIC to be polymorphic for same SharedFunctionInfos 2020-02-29 09:09:42 +00:00
test-feedback-vector.h Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-field-type-tracking.cc [offthread] OffThreadFactory support for literals 2020-02-06 16:49:04 +00:00
test-fixed-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-flags.cc [regexp] Multiple interpreter executions tier-up 2019-09-09 15:43:42 +00:00
test-func-name-inference.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc [heap] Report total size of global handles 2020-03-03 13:22:15 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [ptr-compr] Pass Isolate to JSObject::NormalizeProperties() 2019-06-11 11:11:10 +00:00
test-hashmap.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-heap-profiler.cc Reland "[ic] Migrate Code-based handlers to use data driven handler." 2019-11-20 22:31:38 +00:00
test-icache.cc [ppc64][ppc] Split up ARCH_PPC and ARCH_PPC64 2020-02-21 15:42:20 +00:00
test-identity-map.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-inobject-slack-tracking.cc Use consistent capitalization rules for instance types 2019-10-09 17:44:42 +00:00
test-inspector.cc [inspector] Remove extra byte swapping on BE machines 2020-02-06 18:00:54 +00:00
test-intl.cc [lookup] Refactor LookupIterator "property or element" creation 2020-01-09 18:39:11 +00:00
test-javascript-arm64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-arm64-variables.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-weak-refs.cc [weakrefs] Rename FinalizationGroup to FinalizationRegistry for JS 2020-02-25 22:53:20 +00:00
test-liveedit.cc Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
test-lockers.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-log-stack-tracer.cc [cleanup] Remove unused TickSample class from the public API 2019-08-22 07:27:35 +00:00
test-log.cc [log] Use handles for LogRecordedBuffer 2020-01-07 13:44:45 +00:00
test-macro-assembler-arm64.cc [ptr-compr][arm64] Use ldr_w to load on 32 bits for CompressedHeapConstants 2019-06-21 07:37:04 +00:00
test-macro-assembler-arm.cc [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
test-macro-assembler-mips64.cc [mips64][codegen] Remove dead argument to Assember::stop 2019-07-12 12:06:27 +00:00
test-macro-assembler-mips.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-macro-assembler-x64.cc Revert "[ptr-compr] Fix 32-bit smis on non-ptr-compr builds" 2020-02-27 11:22:12 +00:00
test-managed.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-mementos.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-modules.cc [d8] Claim TLA TODOs 2020-02-25 09:40:16 +00:00
test-object.cc Make ToInteger always truncate -0 2020-03-02 20:40:01 +00:00
test-orderedhashtable.cc [offthread] Deisolatify dictionaries 2020-03-03 20:08:54 +00:00
test-parsing.cc [parser] Track labels in the parser-base rather than parser+ast 2020-02-18 18:04:13 +00:00
test-platform.cc
test-pointer-auth-arm64.cc [arm64] Add support for pointer authentication instructions 2019-07-24 17:00:26 +00:00
test-poison-disasm-arm64.cc [arm64] Intentionally corrupt the upper half of decompressed SMIs 2019-11-19 12:14:12 +00:00
test-poison-disasm-arm.cc Reland "[TurboProp] Add MidTierMachineLoweringPhase to avoid Late/MemoryOptimizationPhases" 2019-09-26 16:39:15 +00:00
test-profile-generator.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-random-number-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-regexp.cc [regexp] Always pass the isolate to CaseInsensitiveCompareUC16 2020-03-02 10:46:15 +00:00
test-representation.cc Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-roots.cc [weakrefs] Make the dirty FinalizationGroup list weak 2020-02-12 18:16:15 +00:00
test-sampler-api.cc Reland "[arm64] Protect return addresses stored on stack" 2020-02-13 12:26:25 +00:00
test-serialize.cc [heap] Restrict usages of AlwaysAllocateScope 2020-03-03 11:24:33 +00:00
test-smi-lexicographic-compare.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-stack-unwinding-win64.cc Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
test-strings.cc [heap] Restrict usages of AlwaysAllocateScope 2020-03-03 11:24:33 +00:00
test-strtod.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-symbols.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-sync-primitives-arm64.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-sync-primitives-arm.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-thread-termination.cc [weakrefs] Call Isolate::ClearKeptObjects() as part of microtask checkpoint 2020-02-19 02:25:34 +00:00
test-threads.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-trace-event.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-traced-value.cc
test-transitions.cc [ptr-compr] Isolatify Map::MigrateToMap() and friends 2019-07-03 08:08:05 +00:00
test-transitions.h Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-typedarrays.cc [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
test-types.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
test-unboxed-doubles.cc Update DescriptorArray and Map to use InternalIndex 2019-10-11 14:40:43 +00:00
test-unscopables-hidden-prototype.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-unwinder-code-pages.cc Reland "[arm64] Protect return addresses stored on stack" 2020-02-13 12:26:25 +00:00
test-unwinder.cc Reland "[arm64] Protect return addresses stored on stack" 2020-02-13 12:26:25 +00:00
test-usecounters.cc Adding counters for elements on Array.prototype and Object.prototype 2020-02-04 00:07:49 +00:00
test-utils-arm64.cc [arm64][cleanup] Remove CPURegister::Is and CPURegister::is 2019-11-14 12:58:09 +00:00
test-utils-arm64.h Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils.cc [cleanup] Split out bit-field.h and bounds.h from utils/utils.h 2019-11-15 13:00:08 +00:00
test-v8windbg.cc [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
test-version.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-weakmaps.cc [heap] Add flag to promote young objects in MC 2019-10-17 13:38:21 +00:00
test-weaksets.cc [objects] rename kSize to kHeaderSize for JSObject subclasses 2019-11-18 15:17:52 +00:00
testcfg.py
trace-extension.cc [cleanup] Remove unused TickSample class from the public API 2019-08-22 07:27:35 +00:00
trace-extension.h [cleanup] Remove unused TickSample class from the public API 2019-08-22 07:27:35 +00:00
unicode-helpers.cc Move string-related files to src/strings 2019-05-21 07:17:48 +00:00
unicode-helpers.h Move string-related files to src/strings 2019-05-21 07:17:48 +00:00