v8/include
Anton Bikineev 92eae6d126 cppgc: Force EBO to always work with GCed
Currently, in the following struct

struct LayoutObject : GarbageCollected<>, MixinA, MixinB {};

the subobject that corresponds to the first base GarbageCollected<>
always takes up some space (one word). The empty-base-optimization
doesn't happen because the second base (MixinA) has the same subobject
as the first base (GarbageCollected), which is the most parent class
GarbageCollectedBase. The compiler can't "merge" them because it must
guarantee that distinct objects of the same type have distinct
addresses.

The attribute [[no_unique_address]] doesn't work for base classes,
unfortunately (but is a good idea for a Standard proposal). As a
solution, the CL simply removes GarbageCollectedBase.

Bug: chromium:1260797
Change-Id: I415b10a5fbcebce3d6ee97b8870ea9ae90f383a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259654
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77693}
2021-11-03 22:23:59 +00:00
..
cppgc cppgc: Force EBO to always work with GCed 2021-11-03 22:23:59 +00:00
libplatform [api] Advance deprecation for deprecated apis <= v9.5 2021-10-26 13:04:31 +00:00
APIDesign.md Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
DEPS cppgc: Implement process-global state accessors. 2021-02-17 22:37:24 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
js_protocol-1.2.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol-1.3.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol.pdl [inspector] Add nonIndexedPropertiesOnly to Runtime.getProperties. 2021-08-18 07:34:19 +00:00
OWNERS Make autoroll account owner of auto-updated file 2021-08-24 15:05:13 +00:00
v8-array-buffer.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-callbacks.h [wasm] Load --wasm_dynamic_tiering from the context 2021-10-06 12:12:54 +00:00
v8-container.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-context.h [api] Advance deprecation for deprecated apis <= v9.5 2021-10-26 13:04:31 +00:00
v8-cppgc.h cppgc-js: Deprecate explicit write barrier API 2021-11-02 10:34:22 +00:00
v8-data.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-date.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-debug.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-embedder-heap.h [api] Advance deprecation for deprecated apis <= v9.5 2021-10-26 13:04:31 +00:00
v8-exception.h [api] Advance deprecation for deprecated apis <= v9.5 2021-10-26 13:04:31 +00:00
v8-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-external.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-fast-api-calls.h [fastcall] Expose CTypeInfoBuilder publicly 2021-10-27 10:12:23 +00:00
v8-forward.h [include] Add TryCatch and Extension to v8-forward.h 2021-09-23 13:15:10 +00:00
v8-function-callback.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-function.h [api] Deprecate v8::ScriptCompiler::CompileFunctionInContext 2021-10-27 07:19:51 +00:00
v8-initialization.h Add V8::IsUsingSecureVirtualMemoryCage API 2021-10-14 09:47:49 +00:00
v8-inspector-protocol.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-inspector.h [api] Advance deprecation for deprecated apis <= v9.5 2021-10-26 13:04:31 +00:00
v8-internal.h Introduce CagedPointer 2021-10-29 13:36:07 +00:00
v8-isolate.h [api] Add v8::Isolate::IsCurrent() method 2021-10-29 11:32:27 +00:00
v8-json.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-local-handle.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-locker.h [api] Rename v8::Locker::IsActive to v8::Locker::WasEverUsed 2021-10-06 07:54:37 +00:00
v8-maybe.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-memory-span.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-message.h [api] Advance deprecation for deprecated apis <= v9.5 2021-10-26 13:04:31 +00:00
v8-metrics.h heap: Add default values to UMA metrics struct 2021-10-26 07:53:52 +00:00
v8-microtask-queue.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-microtask.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-object.h [api] Add v8::Object::GetCreationContextChecked 2021-10-27 07:18:13 +00:00
v8-persistent-handle.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-platform.h Make PageAllocator::DecommitPages mandatory 2021-10-14 12:30:59 +00:00
v8-primitive-object.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-primitive.h [api] Advance deprecation for deprecated apis <= v9.5 2021-10-26 13:04:31 +00:00
v8-profiler.h [heap-snapshot] Declaring progress counter as uint32_t (instead of int) 2021-10-26 13:26:21 +00:00
v8-promise.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-proxy.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-regexp.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-script.h [api] Deprecate v8::ScriptCompiler::CompileFunctionInContext 2021-10-27 07:19:51 +00:00
v8-snapshot.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-statistics.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-template.h api: Expose initial_array_prototype to public 2021-10-01 16:39:47 +00:00
v8-traced-handle.h TracedReference: Fix MSVC compile errors 2021-11-02 22:11:29 +00:00
v8-typed-array.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-unwinder-state.h [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
v8-unwinder.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-util.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-value-serializer-version.h Expose the ValueSerializer data format version as a compile-time constant. 2017-04-27 15:14:41 +00:00
v8-value-serializer.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-value.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-version-string.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-version.h Changed version number to 9.7 2021-10-07 10:38:23 +00:00
v8-wasm-trap-handler-posix.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-wasm-trap-handler-win.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-wasm.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-weak-callback-info.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8config.h Introduce CagedPointer 2021-10-29 13:36:07 +00:00