v8/include
Jakob Gruber 06af754cea [isolate-data] Split builtin tables into tiers
.. for more efficient access to builtins from generated code.

Root-relative accesses tend to be faster and produce more compact
code when the root-relative offset is small. IsolateData contains
a few large tables (roots, external references, builtins), resulting
in very large offsets in general.

This CL starts by splitting the builtin table into tiers: tier 0
is a minimal set of perf-critical builtins that should be cheap to
access. The offset to tier 0 builtins is guaranteed to be small.

The full builtin table also remains in IsolateData for occasions in
which we need to lookup builtins by index.

In future work, we can also split external references and roots into
tiers.

On x64, this reduces deopt exit sizes from 7 to 4 bytes and from 12
to 9 bytes (dynamic map checks / EagerWithResume deopts).

Bug: v8:12203,v8:8661
Change-Id: I5a9ed22b0e00682aca1abcf15892ae1458dbdd70
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162142
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76947}
2021-09-20 19:18:27 +00:00
..
cppgc cppgc: Add GetWriteBarrierType that ignores slots 2021-09-16 12:53:21 +00:00
libplatform Step 1 (of 3-ish): Basic ETW Instrumentation in V8 2021-01-05 20:11:03 +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 Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-container.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-context.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-cppgc.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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 Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-exception.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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] Refactor TryCopyAndConvertArrayToCppBuffer 2021-09-16 18:52:28 +00:00
v8-forward.h [include] Fix include guard to v8-forward.h 2021-09-16 10:59:01 +00:00
v8-function-callback.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-function.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-initialization.h Simplify the V8VirtualMemoryCage implementation 2021-09-17 09:38:35 +00:00
v8-inspector-protocol.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-inspector.h [include] Remove v8-script.h include from v8-inspector.h 2021-09-07 12:58:30 +00:00
v8-internal.h [isolate-data] Split builtin tables into tiers 2021-09-20 19:18:27 +00:00
v8-isolate.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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 Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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 [message] Print to a std::ostream from PrintCurrentStackTrace() 2021-09-13 10:18:13 +00:00
v8-metrics.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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 Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-persistent-handle.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-platform.h Introduce v8_enable_virtual_memory_cage 2021-08-11 16:13:42 +00:00
v8-primitive-object.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-primitive.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-profiler.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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 Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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 Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
v8-traced-handle.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +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.6 2021-09-09 13:34:14 +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 Move pthread_jit_write_protect support to build_config.h 2021-08-10 13:07:40 +00:00