v8/src
Leszek Swirski 3d02ccf7ac [compiler] Change liveness to use a flat array
Bytecode liveness needs a mapping from offset to liveness. This was
previously a hashmap with a very weak hash (the identity function) and
both inserts and lookups showed up as a non-trivial costs during
compilation.

Now, replace the hashmap with a simple flat array of liveness, indexed
by offset, pre-sized to the size of the bytecode. This will have a lot
of empty entries, but will have much better runtime performance and
probably ends up not much less memory efficient as a hashmap if the
hashmap has to resize inside the Zone, and is likely negligible compared
to the other compilation memory overheads.

Change-Id: Id21375bfcbf0d53b5ed9c41f30cdf7fde66ee699
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455802
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79049}
2022-02-11 14:28:43 +00:00
..
api Plumb Isolate through GetConstructor and GetConstructorName 2022-02-05 01:07:36 +00:00
asmjs Remove many superfluous STL includes in headers. 2022-01-13 20:56:45 +00:00
ast [class] initialize brand after super() in nested arrow function 2022-02-10 14:05:48 +00:00
base Refactor Name::Hash 2022-02-07 11:30:04 +00:00
baseline [baseline] Fix race between baseline compiler and GC on page flags 2022-02-10 10:16:45 +00:00
bigint Reland "Reland "[Torque] Generalize Torque literals to larger size"" 2022-02-04 09:40:24 +00:00
builtins [rab/gsab] RAB / GSAB support for constructing TAs from TAs 2022-02-10 09:38:04 +00:00
codegen Remove FLAG_young_generation_large_objects 2022-02-11 10:37:55 +00:00
common [errors] Enhance the DataView construction error message 2022-02-07 12:02:48 +00:00
compiler [compiler] Change liveness to use a flat array 2022-02-11 14:28:43 +00:00
compiler-dispatcher Remove many superfluous STL includes in headers. 2022-01-13 20:56:45 +00:00
d8 Revert "Reland "Reland "[heap] Support client-to-shared refs in Code objects""" 2022-02-10 11:32:48 +00:00
date [builtins][date] Fix -Wshadow warnings 2021-11-15 19:46:43 +00:00
debug Avoid leaking Promises when detaching debugger 2022-02-09 16:40:56 +00:00
deoptimizer Remove the turboprop implementation 2022-01-20 12:31:39 +00:00
diagnostics [class] initialize brand after super() in nested arrow function 2022-02-10 14:05:48 +00:00
execution [sandbox] Make ExternalPointerTable::Allocate atomic 2022-02-10 18:03:22 +00:00
extensions [interpreter] Port GetDispatchCountersObject to internal 2021-08-25 09:50:51 +00:00
flags Remove FLAG_young_generation_large_objects 2022-02-11 10:37:55 +00:00
handles api: Deprecate v8::TracedGlobal 2022-02-04 15:38:17 +00:00
heap heap: Inline fast paths for AllocateRaw() and AllocateRawWith() 2022-02-11 14:26:33 +00:00
ic Refactor Name::Hash 2022-02-07 11:30:04 +00:00
init [init] Install console API to context extras binding 2022-02-08 15:48:33 +00:00
inspector [debug] Implement stepping out of async functions in the debugger. 2022-02-08 06:32:16 +00:00
interpreter [compiler] Change liveness to use a flat array 2022-02-11 14:28:43 +00:00
json [json, parsing] Switch to internal GC callbacks 2022-02-07 09:13:07 +00:00
libplatform [base] Remove TimeTicks::HighResolutionNow 2022-02-04 13:27:14 +00:00
libsampler [cleanup] Fix a bunch of -Wshadow 2021-11-22 17:27:38 +00:00
logging [base] Remove TimeTicks::HighResolutionNow 2022-02-04 13:27:14 +00:00
numbers Reland "Reland "[Torque] Generalize Torque literals to larger size"" 2022-02-04 09:40:24 +00:00
objects [heap] Do not allocate external strings in shared heap 2022-02-10 19:53:22 +00:00
parsing [json, parsing] Switch to internal GC callbacks 2022-02-07 09:13:07 +00:00
profiler Refactor Name::Hash 2022-02-07 11:30:04 +00:00
protobuf Remove petermarshall from OWNERS 2021-03-31 11:00:22 +00:00
regexp [regexp] Don't check for excess zone allocations 2022-02-08 11:13:51 +00:00
roots [wasm] Return chained promise on suspend 2022-01-26 18:04:51 +00:00
runtime Remove FLAG_young_generation_large_objects 2022-02-11 10:37:55 +00:00
sandbox [sandbox] Make ExternalPointerTable::Allocate atomic 2022-02-10 18:03:22 +00:00
sanitizer Reland "[elements] Avoid racy data reads/writes" 2021-05-06 10:46:52 +00:00
snapshot [heap, objects] Check object layout changes happen on main thread 2022-02-07 14:32:48 +00:00
strings Refactor Name::Hash 2022-02-07 11:30:04 +00:00
tasks Remove rmcilroy from OWNERS. 2021-08-19 16:30:27 +00:00
temporal [Temporal] Part2 Add constructor and simple getters. 2022-01-07 19:18:33 +00:00
third_party Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
torque Reland "Reland "[Torque] Generalize Torque literals to larger size"" 2022-02-04 09:40:24 +00:00
tracing Add missing trace category group to trace-categories.h 2022-01-12 19:47:55 +00:00
trap-handler [trap-handler] Fix -Wshadow warnings 2021-10-15 23:09:46 +00:00
utils [ext-code-space] Fix CodeRange allocation logic 2022-01-26 12:26:17 +00:00
wasm [wasm-gc] Fix recursive type group opcode 2022-02-10 14:53:42 +00:00
web-snapshot [class] initialize brand after super() in nested arrow function 2022-02-10 14:05:48 +00:00
zone [regexp] Don't check for excess zone allocations 2022-02-08 11:13:51 +00:00
DEPS Add verifier for retaining paths in heap snapshots 2022-02-04 15:47:55 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00